Mini-Httpd - der leichtgewichtige Linux-Webserver

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche

Wem der micro-httpd zu klein und der Apache zu groß ist, der hat eine breite Auswahl an verschiedenen Anwendungen.

Der sozusagen nächst-größere Schritt nach dem micro-httpd ist der mini-httpd, ein bis auf wenige Ausnahmen vollständiger Webserver, der Apache in vielerlei Hinsicht das Wasser reichen kann.

Was kann der mini-httpd?

Die Feature-Liste des mini-httpd liest sich schon viel ausführlicher als die des micro-httpd. Solange man keine High-Traffic Seite bedient oder Aapche-spezifische Module benötigt, wird man hier zumeist fündig:

  • get, head, post – Alle gängigen http Methoden
  • cgi – Per Common Gateway Interface sind perl, php, python etc. einzubinden
  • basic auth – für eingeschränkten Zugang beispielsweise zu Downloadseiten
  • virtual hosts – für mehrere Domains auf einer IP
  • standard logging – für auswertbare Weblogs, beispielsweise durch webalizer oder awstats
  • ssl – Secure Socket Layers, ja sogar das geht…


Als Hauptgründe für den mini-httpd wären zu nenen:

  • eine Abneigung gegen den Apache und dessen Ressourcenbedarf,
  • das Betreiben einer kleineren Webseite oder
  • der Wunsch, nicht bei jedem Apache Sicherheitsleck auf einen Exploit bangen zu müssen… :-)

Installation

mini-httpd ist in praktisch allen Distributionen enthalten. Unter apt-basierenden Dists einfach

apt-get install mini-httpd

eingeben. Je nach Distribution erfolgt dann die Meldung:

You have to edit /etc/mini-httpd.conf and
/etc/default/mini-httpd before running mini-httpd!

Schaut man mit einem Editor seiner Wahl in das Konfigurations-File, sieht man schnell wie übersichtlich und selbsterklärend es gestaltet ist. Interessant ist für den Anfang vor allem

data_dir – wo mini-httpd nach im Web anzubietenden Daten schauen soll. Dieser Eintrag sollte auf /var/www oder das entsprechende Verzeichnis geändert werden und host – um auch von außerhalb auf die httpd Funktion zugreifen zu können, muss hier die IP des Servers stehen – also einfach “localhost” durch die (beispielsweise mittels ifconfig ermittelte) IP ersetzen.

Danach muss bei den meisten Distributionen noch ein Schalter umgelegt werden, damit der mini-httpd auch läuft, dieser befindet sich beispielsweise unter Debian in /etc/default/mini-httpd:

# Start daemon?
# 0 = no
# 1 = yes
START=0

Ändern Sie hier einfach START=0 in START=1 und starten Sie den mini-httpd dann auf der console:

/etc/init.d/mini-httpd start 

(stop zum stoppen, status für den Status, einfach nicht?)

Wichtiger Hinweis

mini-httpd kann auch im chroot betrieben werden, der Schalter hierfür findet sich im Konfigurations-File. Ein Betrieb im chroot ist in Hinblick auf die Sicherheit im Betrieb von großer Bedeutung – nutzen Sie das!

Dies geschieht über einen Eintrag, der automatisch in der /etc/inetd.conf vorgenommen wird:

www\tstream\ttcp\tnowait root\t/usr/sbin/tcpd /usr/sbin/micro-httpd /var/www

Dieser Eintrag muß bei Verwendung eines xinetd in der Regel von Hand konvertiert werden. Wichtig ist beim inetd Eintrag vor allem der letzte Teil, hier wird das Default Directory, das oberste Verzeichnis aller Web-Aufrufe definiert. Im vorliegenden (Standard-) Beispiel ist das /var/www, es kann aber auch /home/karlheinz oder jeder andere beliebige Eintrag sein. micro-httpd lässt nicht zu, dass Inhalte oberhalb der Hierarchie dieses Eintrags dargestellt werden.

micro-httpd betrachtet übrigens jeden unvorbereiteten Ansturm auf seine Dienste als Programmfehler oder als Attacke. Sollten Seiten bei Ihnen nicht angezeigt werden und finden sich im (syslog) Logdateien Bereich Einträge in der Art von

too-rapid looping

sollten Sie in der inetd.conf den Eintrag

nowait

durch den Eintrag

nowait.10000

ersetzen. Das verhindert ein solches Verhalten.

Quelle:

http://www.wissens-archiv.de/2010/06/linux-webserver-mini-httpd-der-leichte-fur-fast-alle-falle.html