AA_kellner_123rf-8741714_PawelNowik.jpg

© Pawel Nowik, 123rf.com

Kleine Kellner

Vier alternative Webserver im Vergleich

07.03.2011
Monkey HTTP Daemon, Hiawatha, Lighttpd und Thttpd positionieren sich als schlanke, schnelle und pfiffige Alternativen zum Webserver-Monster Apache.

Im Schatten des scheinbar allmächtigen Webservers Apache tummeln sich weitaus mehr Konkurrenten, als man zunächst glauben mag. Um überleben zu können, besetzen sie verschiedene Nischen. Die Apache-Konkurrenz gibt sich durch die Bank weniger behäbig und ressourcenschonender, die Entwickler bewerben die Server meist als schnell und leichtgewichtig. Sie eignen sich daher besonders für den Betrieb auf einem schwachbrüstigen oder eigentlich schon ausgemusterten Rechner. In der freien Wildbahn liefern sie etwa die Informationsseiten von WLAN-Hotspots in Hotels oder Cafés aus und empfehlen sich als Grundlage für die Weboberfläche eines selbst gebastelten NAS. Unterwegs oder auf einer (LAN-)Party verwandeln sie vorübergehend ein Net- oder Notebook in einen vollwertigen Webserver. Genug Gründe, sich das Quartett Monkey HTTP Daemon, Hiawatha, Lighttpd und Thttpd einmal etwas näher anzuschauen.

Gemeinsamkeiten

In einem Schnellimbiss fertigt der Grillmeister hinter dem Tresen immer einen Kunden nach dem anderen ab. Zur Mittagszeit verlassen deshalb viele Wartende entnervt die Schlange. Wesentlich effizienter geht es da im Restaurant um die Ecke zu: Dort bedient ein Kellner gleich mehrere Tische auf einmal. Hat ein Gast die Vorspeise erhalten, bekommt danach erst ein anderer seinen Nachtisch, bevor der Garçon dem ersten wieder seinen Hauptgang bringt. Unter dem Strich fühlen sich alle prompt bedient.

Die hier vorgestellten Webserver arbeiten nach dem gleichen Prinzip und fertigen die eintrudelnden Anfragen asynchron ab: Jeder hungrige Browser bekommt reihum immer ein Stückchen seiner angefragten Webseite, bis alles vollständig ausgeliefert ist. Die entsprechenden Stichworte für Programmierer lauten "Non-Blocking Sockets", poll() und epoll() – der große Apache kann das in der Version 2 übrigens nicht.

Monkey und Hiawatha beschäftigen sogar mehrere Kellner – der Programmierer bezeichnet sie als Threads – was die Abfertigung weiter beschleunigt. Lighttpd engagiert mittlerweile auf Multiprozessor-Systemen bei Bedarf ebenfalls mehrere Kellner. Er erzeugt dabei allerdings echte Prozesse statt Threads, was einige seiner Module aus dem Tritt bringt oder sogar ganz lahm legt.

Alle vier Probanden versprechen eine schnelle Konfiguration über leicht verständliche Konfigurationsdateien und kennen das Konzept der virtuellen Hosts: Wurden einer IP-Adresse mehrere Domainnamen zugeordnet, unterscheiden die Webserver diese auf Wunsch und bedienen jede Domain mit unterschiedlichen Internetauftritten.

Altertum

Fast alle gängigen Distributionen bringen die hier vorgestellten Webserver in ihren Repositories mit – meist jedoch in einer älteren Version. Beispielsweise enthält Ubuntu 10.10 den Monkey HTTP Daemon in Version 0.9.3, zu Redaktionsschluss war jedoch bereits Version 0.12.2 die aktuelle. Um auf dem neuesten Stand zu sein, müssen Sie also oft den Quellcode des entsprechenden Webservers selbst übersetzen. Das geschieht durch die Bank mit dem bekannten Dreisatz ./configure; make; sudo make install. Damit erhalten Sie dann den neuesten Funktionsumfang, müssen sich aber im Gegenzug auch selbst um Aktualisierungen kümmern.

Monkey HTTP Daemon

Der Webserver mit dem netten Affenmaskottchen (Abbildung 1) nutzt exzessiv die speziellen Möglichkeiten des Linux-Kernels und lässt sich daher auch nicht auf andere Betriebssysteme portieren. Der Betrieb von Monkey setzt einen Kernel in Version 2.6.28 oder höher sowie die pthreads und libc-Bibliotheken voraus. Der Server selbst kümmert sich ausschließlich um die Auslieferung von statischen Seiten – benötigen Sie mehr Funktionen, müssen Sie Monkey über Plugins ausbauen.

Abbildung 1: Der laufende und korrekt arbeitende Monkey-Webserver grüßt mit einem lustigen Affengesicht.

Eine Handvoll mehr oder weniger nützlicher Beispiel-Plugins liegt bei. So rüstet etwa das Cheetah-Plugin eine Shell-ähnliche Kommandozeile nach, während das Mandril-Plugin Anfragen von vorgegebenen IP-Adressen abweist. Diese Blockade beschränken Sie gegebenenfalls auf bestimmte Unterverzeichnisse beziehungsweise URLs. Sogar einige Kernfunktionen lagert Monkey in Plugin aus, darunter etwa die Ausgabe von Log-Dateien. Um die SSL-Unterstützung zu aktivieren, müssen Sie das Kern-Plugin Liana gegen seine Schwester Liana SSL austauschen.

Um dynamische Inhalte, wie etwa PHP-Skripte oder Python-Programme, kümmert sich seit Version 0.11.0 der externe Palm Application Server. Monkey nimmt die jeweiligen Browseranfragen nur noch entgegen und leitet sie über ein eigens zu diesem Zweck entwickeltes Protokoll an den in Python geschriebenen Palm Application Server weiter. Der führt dann das entsprechende CGI-Programm aus und schickt das Ergebnis an Monkey zurück, der es wiederum an den Browser ausliefert.

Die Konfiguration erfolgt über mehrere Textdateien. Neben der Hauptdatei monkey.conf gibt es unter anderem noch eine separate für jeden virtuellen Host sowie für jedes Plugin. Die Dateien gliedern sich in Abschnitte, die darin jeweils abgelegten Einstellungen gilt es mit Leerzeichen nach rechts einzurücken (Abbildung 2). Diese an die Programmiersprache Python angelegte Notation erfordert zunächst etwas Eingewöhnung. Davon abgesehen geht die Konfiguration einfach und rasch über die Bühne, zumal Monkey nicht besonders viele Einstellungen kennt und diese in den mitgelieferten Beispieldateien bereits sinnvoll vorbelegt.

Abbildung 2: Die Konfigurationsdateien für Monkey bestehen aus Abschnitten, wie hier für die Konfiguration des [Server]. Die Einstellungen selbst sind dann eingerückt, gefolgt von einem Leerzeichen und ihrem Wert.

Die Dokumentation von Monkey ist vorbildlich und umfassend. Im krassen Gegensatz dazu fehlt jegliche Erklärung zu den mitgelieferten Plugins. Eine Readme-Datei mit dem Verwendungszweck muss ausreichen, alles Weitere darf der geneigte Administrator aus den Quellcode- und Beispielkonfigurationsdateien herausfischen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 01/2015: E-Books im Griff

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.
Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 5 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...