Preiswert und schnell: Apache 2 als Webserver

Apache 2.x im Überblick

Im allgemeinen Sprachgebrauch ist Apache gleich bedeutend mit dem Webserver, also der Software, die für das Ausliefern von Web-Inhalten an den Browser eines Anwenders zuständig ist. Wie so oft, ist das eine drastisch vereinfachte Darstellung. Schon die Geschichte des Namens - Apache ist eine Ulkform von "a patchy server", also eines Flickwerks - ist Apache eher ein Rahmenwerk, das seine Fähigkeiten erst durch zusätzliche Module erhält.

Diese Erweiterungen nämlich sind es, die eine vom Internet-Surfer kommende Anfrage entgegennehmen, analysieren, benötigte Informationen von der Festplatte oder aus Datenbanken holen und sogar Interpreter für Programmiersprachen aufrufen, um schlussendlich die auf teils verzwickten Wegen entstandene Ausgabe an den User zurückzuliefern.

Gerade mit diesen Modulen gab und gibt es unter Apache 1.3.x immer wieder Probleme. Bei diesem entscheidet die Ladereihenfolge der Erweiterungen darüber, auf welchem Weg eine Anfrage die Modulkette durchläuft. So kann es unachtsamen Webmastern schon einmal passieren, dass das Modul zum Komprimieren der Ausgabedaten vor dem Aufruf des PHP-Interpreters in der Konfigurationsdatei steht. Dieser kann nun aber mit den gepackten Informationen schlicht nichts mehr anfangen - Haareraufen und stundelange Fehlersuche sind oft die Folge.

Es verwundert daher nicht, dass sich bei der jüngsten Apache-Generation vor allem im Bereich der Module einiges getan hat. So legt der Server nun intern fest, in welcher Reihenfolge die Module eine eingehende Anfrage sowie die ausgehenden Datenströme bearbeiten. Darüber hinaus haben einige Erweiterungen Einzug gehalten, die sich unter Apache 1.3.x nur mit Hilfe externer Programme oder schlichtweg gar nicht realisieren lassen.

Die wichtigsten Neuerungen in Apache 2.x sind sicher die direkte Unterstützung von Secure Socket Layers (SSL), der Support für Distributed Authoring and Versioning (DAV), Kompression der übertragenen Inhalte sowie integriertes Caching im Speicher oder auf der Festplatte. Dazu kommt, dass für die unterstützten Betriebssysteme spezielle Multithreading-Versionen des Servers erzeugt werden können, die sich durch geringeren Speicherbedarf bei gleichzeitig höherer Performance auszeichnen.