Wir betreiben einen Server, der im Rechenzentrum der Firma Hetzner untergebracht ist. Während die Installation der meisten Dienste (z.B. E-Mail, sFTP) der Standardkonfiguration von Debian-Linux folgt, haben wir uns beim Webserver für die etwas ausgefallene Drei-Server-Architektur entschieden.
Ein Prozeß eines Apache [Perl]-Servers beansprucht rund 30 MB Arbeitsspeicher (RAM). Da ein Prozeß immer nur eine Anfrage zur gleichen Zeit beantworten kann, laufen viele solcher Prozesse zur gleichen Zeit. Es ist also eine große Verschwendung von Arbeitsspeicher, wenn diese Prozesse zum Ausliefern von Grafiken oder statischen Dateien verwendet würden, denn bei nur zehn solcher Prozesse sind etwa 300 MB RAM belegt.
Ausliefern statischer Objekte
HTML- und CSS-Dateien, Bilder und Grafiken werden vom thttpd-Server ausgeliefert. Dieser Server ist auf genau diese Aufgabe spezialisiert. Sein Durchsatz statischer Objekte ist etwa zehnmal so hoch wie der eines Apache-Webservers. Der eigentliche Vorteil aber ist: thttpd läuft als einzelner Prozeß und braucht nur etwa 800 kB RAM!
Ausliefern der dynamischen Webseiten
Der Apache [Perl]-Server beantwortet nur die Anfragen an dynamische Webseiten. Dadurch reichen wenige dieser Prozesse aus. Das spart sehr viel Arbeitsspeicher.
Unterscheidung zwischen statisch und dynamisch
Die Anfragen des Nutzers nimmt ein sogenannter Web-Proxy-Cache entgegen. Wir setzen Squid ein. Squid filtert die Anfragen an dynamische Webseiten aus und leitet sie an den Apache [Perl]-Server weiter, der dann die Bearbeitung übernimmt. Alle anderen Anfragen werden an den thttpd-Server gegeben. Die von diesen beiden Servern gelieferten Webseiten übermittelt Squid dann an den Browser des Besuchers.