lighttpd aka lighty als apache Ersatz
Der Apache ist ein mächtiges Werkzeug das seinem Benutzer eine Vielzahl an Möglichkeiten zur Verfügung stellt. Hat man aber nur beschränkte Vorstellungen an seinen Webserver ist der Apache meistens Overkill und leider gehen die vielen Möglichkeiten zu Lasten der Performance. So kommt irgend wann der Punkt an dem die Eierlegende Wollmilchsau nicht mehr das ist was man haben möchte und hier kommt lighttpd aka lighty ins Spiel.
Lighttpd ist als schlanker, ressourcensparender, schneller, sicherer und flexibler Webserver gebaut worden und all dies erfüllt er auch. Die Vorteile kommen besonders in "High Performance" Umgebungen zum tragen in denen viele Dateien übertragen werden müssen. So ist er besonders beliebt bei Seiten wie imageshack.us, myspace.com und youtube.com, sowie einiger sehr großer Bittorrent Seiten. Eine Übersicht gibt es im lighttpd wiki. Das aktuelle Netcraft Survey (Nov 2009) berichtet zwar nur von einem Marktanteil von unter 0,5%, aber mit einer steigenden Tendenz. Der Webserver verbraucht nicht nur äußerst wenig Arbeitsspeicher und ist sehr CPU schonend, sondern er bringt auch alles was man braucht mit. Darunter FastCGI, Auth und URL Rewriting.
Das ersetzen des Apache mit lighttpd ist sehr einfach (besonders bei Debian), da man beide Webserver zusammen installieren und auf unterschiedlichen Ports betreiben kann. So kann man auch ein Livesystem ohne große Downtime umstellen. So kann man auch sehr einfach die Performance benchmarken und vergleichen. Das habe ich mir auch noch fest vorgenommen zu machen.
Wichtig ist, das man bei der Umstellung daran denkt, das lighttpd keine .htaccess Dateien unterstützt. URL Rewriting und Authentification die man normalerweise in .htaccess Dateien vornimmt, muss man in der lighttpd Config ab handeln. Das erhöht bei Multiuser Systemen natürlich die Arbeit für den Administrator, da nur dieser auf die Config zugreifen kann. Es gibt hierfür zwar auch Möglichkeiten dies zu vereinfachen, aber man sollte trotzdem daran denken! Wichtig ist auch das .htaccess/.htpasswd Dateien nicht mehr Standardmäßig vom Webserver geschützt sind und damit ganz normal im Browser aufgerufen und heruntergeladen werden können. Das würde ich jedem raten anzupassen und es ist auch ganz einfach. Die Config Datei des lighty ist für den geübten Apache Admin anfangs etwas gewöhnungsbedürftig, aber wenn man weiß wie sie funktioniert wird man sie lieben.
$ nano /etc/lighttpd/lighttpd.conf
Jetzt nach url.access-deny suchen und .htaccess und .htpasswd hinzufügen.
url.access-deny = ( "~", ".inc", ".htaccess", ".htpasswd" )
Und den lighttpd neu laden.
$ /etc/init.d/lighttpd force-reload
Soviel zur Einleitung. Dies soll nur ein allgemeiner Artikel sein. Die genaue Umstellung wird in diesen Artikeln beschrieben.
Weiterführende Artikel zum Thema lighttpd auf Debianroot
Als erstes eine einfache Installation von Lighttpd mit FastCGI-PHP Support als Ersatz eines Apaches.
- lighttpd, fastcgi und PHP5 als Ersatz für Apache2 mit mod-php5
- Lösung für das lighttpd Problem backend is overloaded
Diese Liste wird erweitern sobald ich die anderen Artikel fertig habe.
Todo
- Apache, fastcgi und suexec umstellen
- Erklärung der richtigen fastcgi Konfiguration
- Lighttpd Authentification mit Auth
- Vhost Konfiguration
- Apache mod_rewrite to lighttpd rewrite
Wichtige lighttpd Verzeichnisse und Dateien
PID des lighttpd
/var/run/lighttpd.pid
Runtime Daten
/var/run/lighttpd/
Logs
/var/log/lighttpd/
Upload und Cache Ordner
/var/cache/lighttpd/
Tägliches Cleanup Crontab. Entfernt Einträge aus den Cache Ordnern.
/etc/cron.daily/lighttpd
Einstellungen für den Umgang von logrotate mit den lighttpd logs
/etc/logrotate.d/lighttpd
Der Debian Starter
/etc/init.d/lighttpd
Die Konfigurationsdateien des lighttpd
/etc/lighttpd/
Die Hauptkonfigurationsdatei
/etc/lighttpd/lighttpd.conf
Vorhandene Module Konfigurationsdateien
/etc/lighttpd/conf-available/
Hier gelinkte Configs werden automatisch geladen
/etc/lighttpd/conf-enabled/
Hier liegen die Module von lighty
/usr/lib/lighttpd/
Consolen Kommandos
Aktiviert eine Module Config
$ lighty-enable-mod module
Deaktiviert eine Module Config
$ lighty-disable-mod module
Weitere lighttpd Debian Pakete:
lighttpd-doc installiert die Dokumentation nach /usr/share/doc/lighttpd-doc
$ aptitude install lighttpd-doc
lighttpd-mod-mysql-vhost ermöglicht die Verwaltung der vhostconfigs in einer MySQL Datenbank.
$ aptitude install lighttpd-mod-mysql-vhost
Außerdem gibt es noch lighttpd-mod-magnet, lighttpd-mod-trigger-b4-dl, lighttpd-mod-webdav
Related Links
- lighttpd Links: Homepage | Forum | Blog | Wiki | Altes Forum (nur noch lesen)
- Einstieg in die Config File Syntax (englisch)
- Vergleich apache und lighttpd (englisch)
- Benchmarks Apache/lighttpd/nginx (englisch)