Deutlich bessere Windows-Unterstützung

Apache erneuert Web-Server von Grund auf

27.04.2001
MÜNCHEN (ws) - Die Apache Software Foundation (ASF) unterzieht ihren quelloffenen Web-Server in der Version 2.0 einer grundlegenden Renovierung. Damit soll eine höhere Performance, Skalierbarkeit und bessere Portabilität erreicht werden. Nicht zuletzt soll die Windows-Version den Unix-Pendants gleichgestellt werden.

Der freie Apache-Server gilt neben Linux als die Erfolgsgeschichte der Open-Source-Bewegung. Rund 60 Prozent aller Websites im Internet nutzen den HTTP-Server der ASF. Trotz Marktführerschaft und anerkannter Qualitäten wie der hohen Stabilität weist der Apache-Server in seinem Design allerdings Defizite auf, die historisch begründet sind. Das freie Projekt basiert auf dem HTTP-Server des National Center for Supercomputing (NCSA), der von seinen ursprünglichen Schöpfern nicht mehr weiter gepflegt wurde. Mit dieser Erbschaft verbunden war eine Konzentration auf Unix, wodurch die spätere Portierung auf Windows, OS/2 oder Mac OS erschwert wurde.

APR ersetzt Posix-SchichtDie grundlegenden architektonischen Änderungen von Apache 2.0 zielen besonders darauf ab, die Übertragung auf andere Systeme zu vereinfachen und überall einen gleichwertigen Leistungsumfang zu bieten. Zu diesem Zweck entwickelte das Team für jedes unterstützte Betriebssystem eine schmale Abstraktionsschicht namens "Apache Portable Run-Time" (APR). Sie enthält systemabhängige Funktionensaufrufe und nutzt die spezifischen Möglichkeiten des jeweiligen Betriebssystems aus. Der darauf aufbauende, größte Teil des Server-Codes sollte dann weitgehend plattformneutral bleiben und durch bloßes Compilieren portiert werden können. Die APR ersetzt damit die Posix-Schicht als plattformübergreifenden Unterbau von Apache. Die Posix-Implementierungen der verschiedenen OS-Anbieter beschreiben Apache-Programmierer als zumeist langsam und fehlerhaft, besonders jene von Windows. Deshalb konnten gerade auf dem Microsoft-System mit Apache 2.0 besondere Geschwindigkeitsverbesserungen erzielt werden, indem die APR für die Netzkommunikation oder den Start von CGI-Prozessen auf native Funktionen zurückgreift.

Neben der Umgehung von leistungsschwachen Posix-Aufrufen verbesserten die Apache-Entwickler die Performance und Sklalierbarkeit des Web-Servers, indem sie ihn an die spezifischen Multitasking-Modelle der einzelnen Systeme anpassten. Auch dies kommt besonders der Windows-Version zugute, weil das bisher genutzte, Unix-orientierte Verfahren dort zu schlechten Ergebnissen führte. Die derzeit noch aktuelle Version 1.3 startet mit steigenden Client-Anforderungen zusätzliche Prozesse.

Beim Microsoft-System hingegen erzeugen Programme in dieser Situation üblicherweise leichtgewichtigere, wenn auch weniger robuste Threads. Apache 2.0 kapselt die Multitasking-Modelle in so genannten Multiple Processing Modules (MPM). Beim Kompilieren des Servers können Anwender zwischen fünf mitgelieferten MPMs wählen, die jeweils die Charakteristika bestimmter Systeme berücksichtigen. So finden sich dort Module für Windows NT, OS/2, eines, das wie bisher nur Prozesse startet ("Prefork") und ein hybrides Modell, das eine feste Anzahl an Prozessen in Gang setzt, die ihrerseits bei Bedarf Programmfäden erzeugen. Letzteres ist besonders auf Linux ausgerichtet.

Bestehende Module laufen nicht mehrDie weit reichenden architektonischen Änderungen im Apache-Server führen allerdings dazu, dass bestehende Erweiterungsmodule nicht mehr mit der Version 2.0 kompatibel sind. Die Auswirkungen auf Anwender halten sich insofern in Grenzen, als alle zur Kerndistribution gehörigen Plug-ins bereits an die neue Schnittstelle angepasst wurden. Die Änderung des Apache-API bringt unter anderem eine stärkere Abschirmung der Kernsoftware gegenüber den Modulen, die nun nicht mehr direkt auf die Datenstrukturen des Servers zugreifen können, sondern dies über besondere Funktionen tun müssen.

Für Anwender dürfte die interessanteste Neuerung des Modulkonzepts darin bestehen, dass die Server-Erweiterungen eine Art Pipelining unterstützen. Demnach kann ein Plug-in den Output eines anderen filtern. Beispielsweise könnte ein CGI-Programm eine HTML-Seite erzeugen, die "Server Side Includes" (SSI) enthält und diese anschließend durch das Apache-Modul mod_include schicken. Letzteres würde dann die SSI-Anweisungen auflösen.

Module spielen übrigens auch eine zentrale Rolle, wenn die ASF ihr Erfolgsprodukt in der Version 2.0 nun als Multiprotokoll-Server positioniert. Während die bisherigen Apache-Ausführungen nur das Hypertext Transfer Protocol (HTTP) unterstützten, sieht das neue Modulkonzept explizit vor, dass der Server auf diesem Weg um zusätzliche Protokollstapel erweitert wird. Zum Lieferumfang gehört allerdings nur - sieht man von der HTTP-Erweiterung Web DAV ab - zu Demonstrationszwecken mod_echo, das den einfachen Unix-Dienst "Echo" implementiert. Unterstützung für FTP oder LDAP sollen andere Projekte oder Firmen beisteuern.

Als Vorteil eines Multiprotokoll-Servers, zu denen auch der "Internet Information Server" (IIS) von Microsoft zählt, benennen die Apache-Entwickler die bessere Verteilung von Rechnerleistung zwischen den verschiedenen Services sowie eine einfachere Administration. Während beispielsweise der reine HTTP-Server keinen Einfluss darauf hat, wie viel Rechenzeit ein separater FTP-Dienst in Anspruch nimmt, kann der Multiprotokoll-Server die Systemressourcen besser auf die tatsächlichen Anforderungen verteilen.

Eigene Passwort- und Konfigurationsdateien für jeden Dienst erhöhen die Gefahr, dass fehlerhafte Einstellungen Angreifern Zutritt verschaffen. Um den Sicherheitsansprüchen einer zentralen Administration gerecht zu werden, verfügt Apache 2.0 über Utilities zum User-Management und zur Verschlüsselung von Passwörtern.

Insgesamt sieht das Update des Apache-Servers viel versprechend aus. Besonders auf der Windows-Plattform wird der freie Web-Server ein ernst zu nehmender Gegner für den IIS, der dort bisher ein leichtes Heimspiel hatte. Vor allem die Kombination mit populären Modulen wie mod_perl, PHP und der Java-Servlet-Engine "Tomcat" machen Apache zu einem seriösen Rivalen.

Abb: Unangefochtene Spitzenposition

Der Apache-Web-Server behauptet seit Jahren seine Marktführerschaft. Die Neuerungen der Version 2.0 sollten diese Position sichern. Quelle: Netcraft