My Universe Logo

My Universe Blog » Entries Tagged as Lighttpd

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

Wiki-Umzug

Posted by Jesco Freund at Dec. 6, 2008 2:01 p.m.

Vor etwa zwei Wochen habe ich damit begonnen, das alte Wiki von DokuWiki nach MoinMoin zu migrieren. Im Hintergrund werkelt nun anstelle von Lighttpd ein Apache 2.2 (Worker) mit mod_wsgi. Ursprünglich hatte ich geplant, MoinMoin ebenfalls mit Lighttpd und FastCGI laufen zu lassen, was aber erneut in einer Orgie von defunct-Prozessen endete (nachdem ich mit Ruby schon ähnliche Erfahrungen gemacht habe, glaube ich mittlerweile, dass Lighty's FastCGI nur stabil mit PHP funktioniert und dass der Betrieb in einem FreeBSD-Jail das ganze noch heikler werden lässt…). Ich muss ehrlich zugeben, dass ich von der Performance positiv überrascht bin – die Ladezeiten sind deutlich kürzer als beim alten Wiki. Am Backend kann es nicht liegen; beide Wikis speichern ihre Daten in Textdateien. Entweder hat MoinMoin einen um Längen schnelleren Parser als DokuWiki, oder es liegt wirklich am Webserver.

Nachdem nun mein MoinMoin-Theme zumindest ansatzweise fertig ist (an den Stylesheets hapert's noch ein wenig, da wird mit Sicherheit noch einiges passieren), habe ich heute die DNS-Einträge umgestellt, so dass ab sofort das neue Wiki angesteuert wird.

No comments | Defined tags for this entry: Apache, DokuWiki, Lighttpd, MoinMoin, python, wiki

Angepasste Rewrite-Rules für Serendipity und Lighttpd

Posted by Jesco Freund at Aug. 12, 2007 12:35 a.m.

Die in der technischen Dokumentation von Serendipity angegebenen Rewrite Rules für Lighttpd lassen sich nicht wirklich lesen oder kopieren – der entscheidende Teil auf der rechten Seite der Zuweisung wird leider durch die ungünstige Formatierung und das nicht-skalierende Template abgeschnitten. Also habe ich mich kurzerhand aus dem Serendipity-Forum bedient.

continue reading Angepasste Rewrite-Rules für Serendipity und Lighttpd

No comments | Defined tags for this entry: blog, Lighttpd, s9y

Plone beschleunigt - ein Zope-Zweispänner mit ZEO

Posted by Jesco Freund at Aug. 11, 2007 1:33 p.m.

Plone als CMS ist nicht verkehrt. Nur leider in der Standard-Installation mit nur einem laufenden Prozess etwas langsam, insbesondere da der Interpreter Lock von Python verhindert, dass mehrere Threads des Prozesses zeitgleich auf die ZODB, die zentrale Datenbank der Zope-Instanz, zugreifen. Effektiv arbeitet also immer nur ein Thread, und das saugt! Glücklicherweise gibt es mit ZEO eine nette Möglichkeit, Zope-Instanz und Datenhaltung zu entkoppeln und damit der parallelen Abarbeitung von Requests vorschub zu leisten.

Ich habe in den letzten Tagen insgesamt drei Plone-Instanzen umgebaut. Ganz ohne Downtime lässt sich das nicht hinbekommen, aber die liegt im Bereich von ca. 15 Minuten. Die Instanzen laufen alle auf einem Gentoo Linux Server, mit lighttpd als Reverse Proxy zur Verteilung der Requests davor. Beim Aufsetzen war im Portage Tree noch 2.9.6 die aktuelle Zope-Version der 2.9er-Serie, aber freundlicherweise hat der Maintainer nicht nur eine neue Version eingestellt (2.9.7, wobei eigentlich 2.9.8 aktuell wäre), sondern dankenswerter Weise auch 2.9.6 gleich aus der Tree entfernt. naargh! Also ist auch gleich noch ein Upgrade der Zope-Version nötig geworden, aber auch das lässt sich bewerkstelligen…

continue reading Plone beschleunigt - ein Zope-Zweispänner mit ZEO

No comments | Defined tags for this entry: Gentoo, Lighttpd

Page 1 of 1