von Tom Hensel,
online veröffentlicht am 06.06.2007
Twittern 0 Teilen 0

Schlanke Webserver für Ruby on Rails & Co.: Alternative Diener

Aus dem
t3n Magazin Nr. 8

Die Webserver von Apache, Microsoft und Sun sind weit verbreitet – Milliarden von Anfragen bearbeiten sie jeden Tag. Doch im Hintergrund haben sich einige neue Entwicklungen etabliert, die sich bei vielen Projekten als bessere Wahl erweisen können.

Lighttpd – Fettarm läuft schneller

Um sich von den Mühen seines Diploms an der FH Kiel abzulenken, beschäftigte sich Jan Kneschke mit der Optimierung von Programmcode eines minimalen Webservers. Das Ziel war, bis zu 10.000 gleichzeitige Verbindungen zu ermöglichen und die Anfragen ohne Verzögerung zu bearbeiten. Nach nunmehr knapp drei Jahren ist Lighttpd [1] ein leistungsfähiger Webserver geworden, der sich wachsender Beliebtheit erfreut und selbst von Größen wie YouTube und WikiMedia eingesetzt wird. Die Sympathie kommt nicht von ungefähr – die Installation gestaltet sich einfach, selbst die Kompilation aus dem Quellcode gelingt unkompliziert. Im Gegensatz zu Platzhirschen wie ist Lighttpd sehr kompakt und nur von wenigen Voraussetzungen abhängig.

Abhängigkeiten zu Systembibliotheken (Ubuntu Edgy Eft)

$ ldd /usr/sbin/lighttpd 
linux-gate.so.1 => (0xffffe000)
libpcre.so.3 => /usr/lib/libpcre.so.3 (0xb7ec2000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7ebe000)
libattr.so.1 => /lib/libattr.so.1 (0xb7eb9000)
libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7e79000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7d37000)
libfam.so.0 => /usr/lib/libfam.so.0 (0xb7d2f000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7d18000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7bd7000)
/lib/ld-linux.so.2 (0xb7eee000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7bc2000)

Listing 1

Die Konfiguration von Lighttpd mag für eingefleischte Apache-Administratoren etwas ungewohnt erscheinen. Lighttpd unterstützt das Setzen von Variablen innerhalb der Konfigurationsdatei, selbst mehrdimensionale Felder (Arrays) können verwendet werden. Nach etwas Einarbeitungszeit lernt man die Vorteile jedoch zu schätzen.

Beispiel: Verwendung von Variablen

var.subdomain = "rails"
[...]
server.name = var.subdomain + ".t3n.de"
index-file.names += ("index.rhtml")
[...]

Listing 2

Der Leistungsumfang von Lighttpd ist groß: Virtuelle Server, dynamisches Umschreiben von URLs (ähnlich Apaches mod_rewrite), Kompression mittels zLib, WebDAV, Anbindung an RRDTool und Streaming von Flash-Videos (FLV) stehen neben vielen weiteren Möglichkeiten zur Verfügung.

Seite:  1 2 3 4 5 6

Das interessiert dich bestimmt auch