Druckversion | ||||||||||||||||
Tux ist ein von RedHat entwickelter, kernel-basierter Webserver. Gerade diese Kernelrealisierung erlaubt dem Server, angeforderte Seiten direkt aus dem Seitencache auf die Netzwerkschnittstelle zu schreiben, ohne die zwischen »Userspace« und »Kernelspace« sonst notwendigen Kopieroperationen tätigen zu müssen (dieses Verfahren ist als »Zero Copy« bekannt). Im Wesentlichen resultiert aus diesem eingesparten Transfer die deutlich erhöhte Geschwindigkeit gegenüber anderen Webservern, mit der Tux die Seiten ins Web entlässt. Statische Webseiten kann Tux vollständig mit boardeigenen Mitteln behandelt, relativ problematisch ist die Verarbeitung dynamischer Inhalte, die ja bekanntlich mehr und mehr die Webseiten durchdringen. Tux versucht auch solche dynamischen Seiten in seinen Seitencache aufzunehmen. Hierzu erzeugt ein (i.d.R.) im Userspace laufendes Tux-Modul (solche Module liegen nicht jedem Paket bei; dafür eine ausführliche Anleitung, wie sie zu schreiben sind) ein Objekt, dass anstelle der Webseite in den Seitencache platziert wird. Werden dynamische Daten vom Server angefordert, liefert das Objekt eine Mischung aus dynamischen erzeugten Inhalten und bereits vorbereiteten statischen Objekten (nahezu jede dynamische Webseite beinhaltet statische Elemente, bspw. Bilder). Diese statischen Objekte profitieren wiederum vom Zero-Copy-Protokoll, sodass letztlich auch die Auslieferung dynamischer Seiten eine Beschleunigung erfährt. Weiß Tux einmal nichts mit einer Seite anzufangen - weil bspw. kein entsprechendes Modul existiert - leitet er die Anforderung an einen »normalen« Webserver weiter (bspw. an den Apache). InstallationAb Version 2.4 enthalten die Kernel offiziell die Unterstützung für Tux. Die relevanten Optionen finden Sie unter »Netzwerkoptionen« und lauten: Threaded LinUX application protocol accelarator layer (TUX) Integriert den TUX-Webserver-Code in den Kernel; die Realisierung als als Modul wird empfohlen
External CGI module Aktiviert die Unterstützung um CGI-Programme im Kernel zu starten.
extended TUX logging format Erweitert die Satusausgaben, die TUX an den Syslogd absetzt.
debug TUX
Aktiviert die Ausgabe von Debugmeldungen und dient zur Kontrolle der einzelnen Schritte
während der Arbeit von TUX. Die Option ist nur für TUX-Entwickler sinnvoll.
Bevor Sie an die Kernelerstellung gehen, lohnt ein Blick in /proc/config.gz (existiert nur bei entsprechend konfiguriertem Kernel), ob die notwendigen Fähigkeiten nicht schon im laufenden Kernel enthalten sind:
Des Weiteren benötigen Sie das Paket Tux; für die aktuellen Distributionen sollten vorkompilierte Versionen verfügbar sein. KonfigurationVermutlich haben Sie bislang einen anderen Webserver eingesetzt, der seine Arbeit an Port 80 verrichtete. Da Tux's Fähigkeiten nicht allen denkbaren Anforderungen genügen, wird im der »alte« Webserver als Assistent zur Seite gestellt. Was Tux nicht kann, deligiert er fortan an den Gehilfen weiter. Im Falle des Apache müssen Sie den Eintrag »Port 80« aus seiner Konfigurationsdatei »httpd.conf« ändern. Als Portnummer können Sie eine beliebige nicht genutzte Nummer verwenden, also bspw. »Port 8080«. Außerdem empfiehlt es sich, den Eintrag »Bindaddress *« aus selbiger Datei in »Bindaddress 127.0.0.1« zu modifizieren, um direkten Verbindungen am Port 8080 von anderen Rechnern aus vorzubeugen. RedHat /etc/sysconfig/tux SuSE /etc/rc.config.d/tux.rc.config
Erster Start und TestUm Problemen auf die Schliche zu kommen, empfiehlt sich in einer zweiten Konsole die Datei /var/log/messages zu überwachen. Meldungen wie
fokussieren die Fehlerquelle ziemlich exakt. Im ersten Fall versucht Tux von einer nicht existierenden - oder mit falschen Rechten versehenen - Dokumenten-Root zu lesen ("/var/www/html/" sollte bei RedHat-basierten Distributionen der richtige Eintrag sein; bei SuSE ist es "/usr/local/httpd/htdocs/"). Die zweite Meldung resultiert aus einem Programm, das bereits den Port 80 belegt hat. Vermutlich wurde der Apache zuvor gestartet, obwohl Tux zwingend vor diesem den Port belegen muss.
|
||||||||||||||||
Korrekturen, Hinweise? |