5853
Kommentar: Webserver4Users verlinkt
|
5869
converted to 1.6 markup
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
[[TableOfContents]] | <<TableOfContents>> |
Zeile 30: | Zeile 30: |
Der einzige spezielle Bestandteil unseres Webservers ist der WebProxy. Er verteilt alle Anfragen, die auf Port 80 (http) und Port 443 (https) eingehen, auf die zuständigen [:FaxeUML: UML]-Webserver. Die Zuteilung erfolgt aufgrund von Vergleichen mit URL-Mustern. | Der einzige spezielle Bestandteil unseres Webservers ist der WebProxy. Er verteilt alle Anfragen, die auf Port 80 (http) und Port 443 (https) eingehen, auf die zuständigen [[FaxeUML| UML]]-Webserver. Die Zuteilung erfolgt aufgrund von Vergleichen mit URL-Mustern. |
Zeile 32: | Zeile 32: |
Als WebProxy kamen für uns ein [http://httpd.apache.org apache]-Webserver mit dem [http://www.backhand.org/mod_backhand/ backhand]-Modul oder der [wiki:WikiPediaDe/Load-balancing Lastverteilungsserver] [http://www.apsis.ch/pound/ Pound] in Frage. | Als WebProxy kamen für uns ein [[http://httpd.apache.org|apache]]-Webserver mit dem [[http://www.backhand.org/mod_backhand/|backhand]]-Modul oder der [[WikiPediaDe:Load-balancing|Lastverteilungsserver]] [[http://www.apsis.ch/pound/|Pound]] in Frage. |
Zeile 61: | Zeile 61: |
Weitere Informationen auf der [http://httpd.apache.org/docs-2.0/mod/mod_deflate.html Apache] Seite oder bei [http://www.debian-administration.org/articles/137 Debian-Administration.org]. | Weitere Informationen auf der [[http://httpd.apache.org/docs-2.0/mod/mod_deflate.html|Apache]] Seite oder bei [[http://www.debian-administration.org/articles/137|Debian-Administration.org]]. |
Zeile 64: | Zeile 64: |
Als ''root'' im entsprechenden [:FaxeUML: UML] folgendes ausfuehren: | Als ''root'' im entsprechenden [[FaxeUML| UML]] folgendes ausfuehren: |
Zeile 115: | Zeile 115: |
Für die Auswertung der access.log bieten sich die zwei Tools [http://awstats.sourceforge.net/ awstats] und [http://www.hping.org/visitors/ visitors] an. Für beide existieren Debianpakete. | Für die Auswertung der access.log bieten sich die zwei Tools [[http://awstats.sourceforge.net/|awstats]] und [[http://www.hping.org/visitors/|visitors]] an. Für beide existieren Debianpakete. |
Zeile 124: | Zeile 124: |
attachment:awstats.sao.conf | [[attachment:awstats.sao.conf]] |
Zeile 138: | Zeile 138: |
Wie dies geschieht, kann [https://systemausfall.org/wikis/howto/ForkBombs hier] nachgelesen werden. | Wie dies geschieht, kann [[https://systemausfall.org/wikis/howto/ForkBombs|hier]] nachgelesen werden. |
Zeile 140: | Zeile 140: |
Nähere Details zu unseren Anpassungen des Nutzer-Webservers findest du [wiki:Webserver4Users hier]. | Nähere Details zu unseren Anpassungen des Nutzer-Webservers findest du [[Webserver4Users|hier]]. |
Inhaltsverzeichnis
Was ist das hier
Diese Anleitung beschreibt die Einrichtung von Apache1, Apache2 und Pound.
Daten fuer die Faxe-Administration
Installation der Apache-Server |
|
UML |
|
Apache1 |
bastelecke, interim, wikis |
Apache-ssl |
bastelecke, interim |
Apache2 |
bastelecke, mail, svn, www |
Apache2 - Module |
|
mod_deflate |
|
bastelecke |
x |
x |
|
svn |
x |
www |
|
Bitte folgendes beachten:
unsere eigenen Konfigurations-Dateien in /etc/apache2/conf.d sind Links nach /data/etc
Allgemeine Einstellungen
Verteilung der Anfragen
Der einzige spezielle Bestandteil unseres Webservers ist der WebProxy. Er verteilt alle Anfragen, die auf Port 80 (http) und Port 443 (https) eingehen, auf die zuständigen UML-Webserver. Die Zuteilung erfolgt aufgrund von Vergleichen mit URL-Mustern.
Als WebProxy kamen für uns ein apache-Webserver mit dem backhand-Modul oder der Lastverteilungsserver Pound in Frage.
Die Nutzung eines apache-Server als Proxy stellte sich jedoch als recht komplex heraus - zumindest schafften wir es nicht, ihn so transparent zu konfigurieren, wie wir wollten
Pound dagegen ist sehr speziell und schlank - genau richtig für unsere Zwecke.
Zusätzlich zur Verteilung der Anfragen dient er auch als gemeinsamer SSL-Umsetzer - er leitet alle Verbindungen unverschlüsselt weiter. Dies ist ungefährlich, da die Kommunikation vollständig innerhalb des Rechners abläuft.
Detaillierte Informationen zur Einrichtung findest du auf der WebProxy-Seite.
Standard-Einstellungen
Proxy
Damit die Webserver gut mit dem WebProxy auskommen, brauchen sie folgende Einstellungen (apache):
UseCanonicalName on ServerName UMLNAME.sao
Es ist absolut notwendig, dass diese beiden Statements vr allen Alias- usw. Direktiven gesetzt werden - andernfalls wird mensch verrückt bei der Suche nach dem Fehler. Somit ist es in einer Multi-Dateien-Konfiguration (üblicherweise /etc/apache?/conf.d/) erforderlich, die Datei mit diesen Statements vor allen anderen zu laden (beispielsweise durch Verlinkung oder Verschiebung nach /etc/apache?/sites-enabled (debian)).
SSL
Manche Web-Dienste verweigern Teilfunktionalitäten, wenn sie glauben, dass SSL nicht aktiv ist (z.B. verweigern die Webmail-Oberflächen die Eingabe einer gpg-Passphrase). Dies lässt sich oft mit folgender Direktive beheben:
SetEnv HTTPS on
Apache 2
Komprimierung mit mod_deflate
Das Modul mod_deflate ermoeglicht das komprimierte Senden von Seiten an den Browser (Unterstuetzung des Browser vorausgesetzt). Dadurch steigt zwar die CPU-Belastung, doch es werden geringere Datenmengen uebertragen - wohltuend fuer jede Bandbreite.
Weitere Informationen auf der Apache Seite oder bei Debian-Administration.org.
Installation des Modules
Als root im entsprechenden UML folgendes ausfuehren:
a2enmod deflate
Die erfolgreiche Installation wird mit folgender Meldung belohnt:
Module deflate installed; run /etc/init.d/apache2 force-reload to enable.
Einrichtung
Unter /etc/apache2/conf.d wird die Datei deflate.conf angelegt. Hier unsere Beispielkonfiguration:
# den deflate-Filter aktivieren <IfModule mod_deflate.c> SetOutputFilter DEFLATE # Browserweiche damit aeltere Browser nicht rumzicken BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI \ \.(?:gif|jpe?g|png)$ no-gzip dont-vary # wichtig fuer Proxy-Server <IfModule mod_headers.c> Header append Vary User-Agent </IfModule> # Definition des Log-Outputs DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio # die Logmeldungen werden nach /var/log/apache2/deflate.log geschrieben <IfModule mod_log_config.c> LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate CustomLog /var/log/apache2/deflate.log deflate </IfModule> </IfModule>
Nun muss Apache2 neugestartet werden:
/etc/init.d/apache2 restart
Fertig! Ob das Modul korrekt funktioniert, kannst du mit der Log-Datei kontrollieren.
Logfile Analyse
Für die Auswertung der access.log bieten sich die zwei Tools awstats und visitors an. Für beide existieren Debianpakete.
visitors -A -m 30 access.log -o html > report.html
perl /usr/lib/cgi-bin/awstats.pl -config=sao -month=04 -year=2005 -update -output > report.html
Für letzteres muss es eine config Datei /etc/awstats/awstats.sao.conf geben. awstats.sao.conf
Probleme
Apache2 und PHP
Mensch munkelt, dass PHP Probleme mit den apache2-Modellen außer prefork haben kann.
Nutzer-Webserver
Prozessbeschränkung
Alle user, die sich auf dem Server einloggen dürfen maximal 50 Prozesse gleichzeitig aufführen. Dies soll die Gefahr von Fork-Bombs minimieren.
Wie dies geschieht, kann hier nachgelesen werden.
Nähere Details zu unseren Anpassungen des Nutzer-Webservers findest du hier.