My Universe Logo

My Universe Blog » Entries Tagged as Nginx

Warum Apache immer noch der beste Webserver ist

Posted by Jesco Freund at Jan. 30, 2011 10:28 p.m.

Apache ist als Webserver mittlerweile eine Referenz. Man könnte auch sagen, Apache ist feature-complete. Natürlich hat Apache auch Konkurrenten: Eine ganze Weile lang sah es so aus, als könnte Lighttpd dem Platzhirsch ernsthaft auf den Pelz rücken, und zur Zeit gibt es gerade einen mächtigen Hype um Nginx. Doch was können die beiden eigentlich wirklich besser als Apache?

Zunächst einmal Lighttpd: Lighty läuft mit nur einem Prozess, braucht wenig Ressourcen (insbesondere Speicher) und erzielt trotzdem eine beachtliche Performance, insbesondere bei der Auslieferung von statischem Content. Um trotz Single Process Design mit Apache's Worker-MPM mithalten zu können, greift Lighty tief in die Trickkiste: Non-blocking Sockets in Kombination mit betriebssystemspezifischen Poll-Mechanismen (ePoll für Linux, kqueue für FreeBSD) sorgen für einen flotten Betrieb – aber eben nur auf den genannten zwei Plattformen. Auf anderen Plattformen muss Lighty auf das generische select bzw. poll zurückgreifen und verliert deutlich an Leistungsfähigkeit.

Unter Feature-Aspekten ist Lighty allerdings sehr interessant, der Funktionsumfang lehnt sich an Apache an (URL-Rewriting, Unterstützung sowohl für CGI als auch FastCGI, Aliase, SSL, virtuelle Hosts, etc). Leider scheint die Entwicklung an Lighty ins Stocken geraten zu sein. Selbst im Trunk finden teilweise monatelang keine Commits statt, bekannte Bugs werden (wenn überhaupt) in den viel zu seltenen Service-Releases gefixt. Etwas aktiver läuft es im Lighttpd-2.0 Projekt, aber ein Heraustreten aus dem 1.4er Zweig ist bei Lighty ja schon mal gescheitert (an 1.5 wurde jahrelang gebastelt, aber es gab nie ein Release).

Nun zum zweiten Apache-Konkurrenten, der gerne ernst genommen werden möchte: Nginx. Technisch gesehen ist Nginx ein Lighttpd-Klon, der allerdings mit mehreren Worker-Prozessen auf SMP-Systemen besser skaliert. Im Vergleich zu Apache und Lighttpd ist die Dokumentation zu Nginx eher dürftig, und so sieht es auch auf der Feature-Seite aus: FastCGI wird zwar unterstützt, die Applikationsprozesse startet Nginx aber nicht selbsttätig, sondern ist auf Hilfe von außen angewiesen. CGI wird gleich gar nicht unterstützt (der dreckige Hack über einen FastCGI-Wrapper zählt nicht). Insgesamt macht Nginx den Eindruck, sich nicht davon lösen zu können, primär als Unterbau für Rambler entwickelt worden zu sein.

Was bleibt unter'm Strich? Apache bietet den größten Funktionsumfang, ist gut dokumentiert und wird aktiv entwickelt. Die Performance ist gut, und den Ressourcenhunger kann man per geeigneter Konfiguration zumindest etwas eindämmen. Lighty hätte Potenzial, gerade für kleinere Sites – dazu müsste aber erst mal die Perspektiven des Projekts klar sein. Nginx ist für mich klar raus – nur schnell reicht eben nicht, wenn der Webserver sonst nicht viel auf die Reihe bekommt.

No comments | Defined tags for this entry: Apache, Lighttpd, Nginx

Page 1 of 1