Ahoi,
letztens wurde ich im Free-Hack TeamSpeak gefragt, welcher Webserver meiner Meinung nach der beste ist und welchen ich einsetzen wuerde. Meine Wahl fiel auf “nginx”. Doch warum? Und wieso moechten immer mehr auf “nginx” umsteigen? Gibt es Alternativen und was ist mit der Nummer 1, naemlich “Apache”?
Werde daher die Vor- und Nachteile von Apache, Lighttpd und nginx hier auflisten – falls in Zukunft jemand einen vServer oder Dedicated Server zulegen moechte und ueberlegt, welchen Webserver er einsetzen solle, hoffe ich dieser Person mit diesem Blogeintrag zu helfen.
Um den Ueberblick nicht zu verlieren, werde ich nur die Argumente bzw. Funktionen auflisten, die meiner Meinung nach am wichtigsten sind.
der meistbenutze Webserver im Internet
Vorteile:
+ Open Source & Kostenlos
+ Durch (sehr viele) Module erweiterbar
+ Oft bereits vorinstalliert auf Linux Servern und seit Jahren die Nummer 1
Nachteile:
– Um einiges langsamer als leichtere Webserver
– Hat schon mit schwachen DoS/DDoS Attacken Probleme, der Arbeitsspeicher (und das Logverzeichnis) verbrauchen innerhalb kurzer Zeit viel “Platz” und vorallem auf einem Server mit wenig RAM kann es dann vorkommen, dass der RAM dann aufgebraucht ist und der Prozess einfach abstuerzt. Dann tut sich nichts mehr.
– veraltet und ueberfuellt (was die ganzen Module angeht), die Standard Konfiguration ist auch nicht optimal und muss meistens angepasst werden
– Die Entwicklung ist vergleichsweise langsam
fly light.
Vorteile:
+ Open Source & Kostenlos
+ hat einige Erweiterungen
+ Niedriger CPU Load und RAM verbrauch im Vergleich zu Apache, auch bei “Belastung”
+ Serverlastverteilung moeglich und schneller als Apache
+ Fastcgi & HTTP Proxy Support verfuegbar
Nachteile:
– Die Entwicklung geht aehnlich wie bei Apache relativ langsam voran
der russische Ueberflieger
Vorteile:
+ Wird vorallem auf großen Seiten wie Rambler.ru, WordPress.com, GitHub, SourceForge, ComputerBase, Golem.de, FastMail, Hulu, 4chan und YouPorn eingesetzt
+ Eignet sich wunderbar als Webserver und/oder Reverse Proxy zur Serverlastverteilung
+ Open Source & Kostenlos
+ Es wird stets dran weiterentwickelt, fast monatlich gibt es updates
+ Vorallem der CPU Load & Ram Verbrauch sind um einiges niedriger als bei Apache oder Lighttpd (Es gibt einen interessanten Artikel, der Lighttpd und nginx vergleich: http://www.wikivs.com/wiki/Lighttpd_vs_nginx )
+ Viel bessere Performance als Lighttpd oder Apache, druecken diese zwei Zitate aus:
” * in my simple stress tests cpu usage showed lighttpd at 98% while nginx was never more than 52%.
* Nginx performed almost the same as lighttpd but cpu load was much better with nginx. (LA never got more than 5 while lighttpd bumped it up to ~10, and apache to 20+ while testing with the wordpress setup) Btw, can’t even compare it to apache, which almost crashed my box when testing the sample wordpress install.( 10000 requests, 1000 concurrent) ”
Aus http://www.wikivs.com/wiki/Lighttpd_vs_nginx
+ Die Konfiguration ist einfach und uebersichtlich, es gibt ein großes Wiki mit Konfigurations Beispielen
Nachteile:
– nginx bringt leider nicht wie Lighttpd ein FastCGI Modul mit, um ordnungsgemaess mit PHP zu laufen, daher muss entweder FastCGI (nach)installiert werden oder man greift auf das seit PHP 5.3 vorhandene “PHP Modul” php-fpm zu.
Fazit:
Wer eine Seite mit genug RAM und CPU Ressourcen hat und lieber mal schnell und unkompliziert starten will, kann den – meiner Meinung nach – veralteten Webserver Apache einsetzen, sollte ihn dann aber gut konfigurieren. Wer alle Apache Module benoetigt, kann auch zu Litespeed wechseln, welches schneller und besser, jedoch auch kostenpflichtig ist. Ich wuerde aber niemandem raten, seine Seite in der heutigen Welt noch mit Apache zu betreiben, da es einfach “zurueckgeblieben” ist, es ist die Nr. 1 aber es gibt einfach bessere und schnellere Alternativen.
Nun nochmal zu den Fragen am Anfang zu meinem Eintrag, mein persoenlicher Gewinner ist nginx. Die Vorteile ueberwiegen, die Konfiguration ist einfach und es kommt gut mit vielen Requests zurecht. Auch die Statistiken sprechen fuer sich:
“Laut der Netcraft Statistik wurden im November 2009 6,42 % aller Websites, die in der Statistik mit aufgenommen wurden, mit nginx betrieben, in totalen Zahlen sind dies 14.988.610 Webserver. Dabei konnte nginx laut Netcraft starke Zuwächse verbuchen, im Oktober 2009 waren es noch 5,99 % oder in ganzen Zahlen 13.813.997 Websites die mit nginx betrieben wurden. Dies ergibt ein Wachstum von etwa 1,1 Millionen Webserver seit Oktober. Innerhalb der letzten drei Monate kann nginx einen Zuwachs von circa 3,5 Millionen Webserver verzeichnen. Dies entspricht in etwa dem Wachstum vom Apache HTTP Server und liegt weit über dem Zuwachs von 200.000 Webservern, die Microsoft mit dem Microsoft Internet Information Services Webserver verbuchen konnte.
In Russland steckt nginx laut der offiziellen Website hinter über 20 % aller Domains. In absoluten Zahlen standen im Mai 2009 mit knapp 2,5 Millionen Websites die meisten nginx-Server in China, gefolgt von 2,4 in den Vereinigten Staaten. Erst auf Platz 3 folgte mit 580.000 Russland, in Deutschland waren es laut Statistik knapp 45.000 mit nginx-Server.”
Aus http://de.wikipedia.org/wiki/Nginx
Wer will kann auch die aktuellen Statistiken vom Januar 2011 sehen:
http://news.netcraft.com/archives/2011/01/12/january-2011-web-server-survey-4.html
Und wie man sieht ist die Anzahl an Server, welche nginx als webserver einsetzen weiter gestiegen.
Abschließend bleibt noch gesagt, dass im Endeffekt jeder den Webserver benutzen sollte, mit dem er gut zurecht kommt und auf den vServern, welche ich besitze oder einrichte, sind nginx oder lighttpd immer meine erste Wahl.