2010-11-05 36 views
10

J'ai actuellement un serveur avec nginx que reverse_proxy à apache (même serveur) pour traiter les requêtes php. Je me demande si je laisse tomber apache alors j'exécuterais nginx/fastcgi au php si je voyais n'importe quelle sorte de performance augmente. Je suppose que je le ferais depuis Apache est assez gonflé, mais en même temps, je ne suis pas sûr de la fiabilité de fastcgi/php est particulièrement dans les situations de trafic élevé.nginx/apache/php vs nginx/php

Mes sites obtiennent environ 200 000 visiteurs uniques par mois, avec environ 6 000 000 d'explorations de pages par mois sur les moteurs de recherche. Ce nombre augmente régulièrement donc je regarde les options de perfomrance.

Mon site est très optimisé du point de vue du code et il n'y a pas de mise en cache (ne le veux pas non plus), chaque page a un maximum de 2 sql sans aucune jointure sur les autres tables. Dans un an ou deux, je vais tout réécrire pour utiliser ClearSilver pour les modèles, puis utiliser probablement python ou bien C++ pour des performances extrêmes. Je suppose que je suis plus ou moins à la recherche de conseils de quiconque est familier avec nginx/fastcgi et si vous souhaitez fournir quelques repères. Mes sites sont un serveur avec 1 xeon de quadruple noyau, RAM de 8gb, commande de vélociraptor de 150GB.

Répondre

5

nginx fonctionnera certainement plus vite qu'Apache. Je ne peux pas parler de fastcgi puisque je ne l'ai jamais utilisé avec nginx mais cette solution semble avoir plus de sens sur plusieurs serveurs (un pour les contenus statiques et un pour fastcgi/PHP). Si vous visez vraiment les performances - et même envisagez le C/C++ - alors vous devriez essayer G-WAN, un serveur tout-en-un qui fournit des scripts C (très rapides).

Non seulement G-WAN a une empreinte mémoire ridiculement faible (120 Ko), mais il évolue comme rien d'autre. Si vous migrez depuis PHP, il y a du travail à faire, mais vous pouvez commencer par les tâches critiques en termes de performances et migrer progressivement.

Nous avons fait le saut et ne pouvons pas envisager de retourner à Apache!

+0

G-WAN a l'air très très agréable! Savez-vous à peu près combien de connexions il pourrait gérer par seconde? – Joe

+1

J'ai mesuré G-WAN à 200 000 requêtes par seconde. Compte tenu du fait que l'animal est un processus 32 bits, il est possible de progresser lorsqu'il s'exécutera en code 64 bits (tous les autres serveurs Web sont beaucoup plus rapides lorsqu'ils sont compilés en 64 bits qu'en 32 bits). – Frankie

+2

Pas toujours. Apache fonctionne beaucoup plus vite que nginx sur les grosses machines multicœurs avec une charge très lourde (pages dynamiques). Nginx est bon pour les fichiers statiques ou lorsque nous l'utilisons comme proxy. – iddqd

2

Voici un tableau montrant les performances respectives de nginx, apache et g-wan:

g-wan.com/imgs/gwan-lighttpd-nginx-cherokee.png~~V~~3rd

apache ne semble pas pour mener le peloton (et c'est un -Quad XEON @ 3GHz).

+0

Notez que ce graphique vient directement de g-wan, donc il est plus susceptible de favoriser g-wan. –

1

Voici une référence indépendante pour g-wan vs nginx, vernis et autres http://nbonvin.wordpress.com/2011/03/14/apache-vs-nginx-vs-varnish-vs-gwan/

g-wan poignées beaucoup plus de demandes par seconde avec beaucoup moins de temps CPU.

+0

Comment savez-vous que c'est indépendant? ;) ... juste curieux. – 0xC0000022L

+0

Les auteurs de @STATUS_ACCESS_DENIED, g-wan et nginx ont commenté ce blog et ont même suggéré quelques ajustements pour le benchmark de leurs serveurs; ce qui suggère pour moi que l'indice de référence n'était pas vicié et que c'était juste. répliquer le benchmark comme détaillé au début de ce post et nous faire savoir ce que vous obtenez, indépendamment;), g-wan revendique désormais une meilleure gestion de la mémoire que nginx qui consommait le moins de mémoire que tous les autres serveurs web du benchmark. – Soroush

+0

Assez juste. +1 – 0xC0000022L