Übersicht der neuen Funktionen in Apache 2.0

Erweiterungen: Core | Module


Core-Erweiterungen:

Unix-Threading
Auf Unix-Systemen mit Unterstützung für POSIX-Threads, kann Apache jetzt in einem Multi-Process, Multi-Threaded Hybrid-Mode gestartet werden. Dies verbessert die Skalierfähigkeit für viele, jedoch unbedingt nicht alle Konfigurationen.
Neues Build-System
Das Build-System wurde komplett auf der Basis von autoconf und libtool neu geschrieben. Dadurch wird das Apache-Konfigurationssystem dem vieler anderer Packages ähnlicher.
Multi-Protokoll-Unterstützung
Apache stellt jetzt die notwendigen Grundfunktionalitäten bereit um mehrere Protokolle unterstützen und verarbeiten zu können. mod_echo wurde hierfür als Beispiel geschrieben.
Bessere Unterstützung von nicht-Unix-Plattformen
Apache 2.0 ist schneller und stabiler auf nicht-Unix-Plattformen wie BeOS, OS/2, und Windows. Mit der Einführung von Plattform-spezifischen Multi-Processing Modulen (MPMs) und der Apache Portable Runtime (APR), sind diese Plattformen jetzt in ihrem nativen API implementiert, wodurch die Verwendung der häufig fehlerbehafteten und schlecht funktionierenden POSIX-Emulation-Layer vermieden wird.
Neues Apache API
Das API für Module hat sich in 2.0 stark verändert. Die meisten der Sortierungs-/Prioritätsprobleme von Modulen bei 1.3 sollten nun verschwunden sein. In 2.0 wird hiervon vieles automatisch durchgeführt. Die Modulsortierung wird jetzt über einen pre-hook vorgenommen, um mehr Flexibilität zu bieten. Außerdem wurden neue API-Calls hinzugefügt, die zusätzliche Modulfähigkeiten zur Verfügung stellen, ohne den Apache-Kern anpassen zu müssen.
IPv6-Unterstützung
Auf Systemen, bei denen die zugrundeliegende Apache Portable Runtime-Bibliothek IPv6 unterstützt, bekommt Apache standarmäßig IPv6 Listening Sockets. Zusätzlich unterstützen die Konfigurationsanweisungen Listen, NameVirtualHost und <VirtualHost> numerische IPv6-Adressangaben (z.B., "Listen [fe80::1]:8080").
Filterung
Apache-Module können jetzt als Filter entwickelt und zur Filterung des rein- und rausgehenden Datenstroms des Servers eingesetzt werden. Hierdurch kann beispielsweise die Ausgabe von CGI-Skripten durch den INCLUDES-Filter von mod_include bearbeitet werden und so Server-Side Include-Anweisungen ausgeführt werden.
Mehrsprachige Fehlermeldungen
Fehlermeldungen die an Browser rausgehen, stehen jetzt als SSI-Dokumente in verschiedenen Sprachen zur Verfügung. Sie können bei Bedarf durch den Administrator angepasst werden, um ein einheitliches Design zu erreichen.
Vereinfachte Konfiguration
Viele der verwirrenden Konfigurationsanweisungen wurden vereinfacht. Die oft für Verwirrung sorgenden Port- und BindAddress-Anweisungen wurden entfernt. Ausschließlich ie Listen-Anweisung wird nun zum Setzen von IP-Addressen und Portnummern benutzt. Der Servername und Portnummer die für Weiterleitungen und Erkennung virtueller Server verwendet werden, werden über die ServerName-Anweisung konfiguriert.
Native Windows NT Unicode-Unterstützung
Apache 2.0 auf Windows NT benutzt jetzt utf-8 für alle Dateinamen-Kodierungen. Diese werden direkt auf das zugrundeliegenden Unicode-Dateisystem abgebildet, wodurch Mehrsprach-Unterstützung fü alle Windows NT-basierte Installationen, inklusive Windows 2000 und Windows XP, zur Verfügung gestellt wird. Diese Unterstützung ist nicht auf Windows 95, 98 oder ME verfügbar. Hier wird weiterhin die jeweils lokale Codepage des Rechners für den Zugriff auf das Dateisystem verwendet.

Modul Erweiterungen:

mod_ssl
Neues Modul in Apache 2.0. Dieses Modul ist ein Interface zu den von OpenSSL bereitgestellten SSL/TLS Verschlüsselungs-Protokollen.
mod_dav
Neues Modul in Apache 2.0. Dieses Modul implementiert die HTTP Distributed Authoring and Versioning (DAV) Spezifikation, zur Erzeugung und Pflege von Web-Inhalten..
mod_auth_digest
Zusätzliche Unterstützung für prozessübergreifendes Session-Caching mittels Shared-Memory.
mod_charset_lite
Neues Modul in Apache 2.0. Dieses experimentelle Modul erlaubt Zeichensatz-Übersetzungen oder -Umschlüsselung.
mod_file_cache
Neues Modul in Apache 2.0. Dieses Modul beinhaltet die Funktionalität von mod_mmap_static aus Apache 1.3, plus einige weitere Caching-Funktionen.
mod_headers
Dieses Modul ist in Apache 2.0 deutlich flexibler geworden. Es kann jetzt die von mod_proxy genutzten Request-Header manipulieren und es ist möglich Response-Header auf Basis von definierten Bedingungen zu verändern.
mod_proxy
Das Proxy Modul wurde komplett neu geschrieben um die Möglichkeiten der neuen Filter-Funktionalität auszuschöpfen und um einen zuverlässigen Proxy zu haben, der den HTTP/1.1-Spezifikationen entspricht.
mod_negotiation
Die neue Konfigurationsanweisung ForceLanguagePriority kann benutzt werden, um sicherzustellen, dass ein Client auf jeden Fall ein einzelnes Dokument, anstatt einer NOT ACCEPTABLE- oder MULTIPLE CHOICES-Antwort, bekommt. Zusätzlich wurden die Negotiation- und Multiview-Algorithmen angepasst um einheitlichere Ergebnisse zu liefern. Außerdem wird eine neue Form von Type-Maps bereitgestellt, die direkt den Inhalt von Dokumenten umfassen können.
mod_autoindex
Automatisch erzeugte Verzeichnisindizes können zur besseren Übersichtlichkeit durch ein HTML-Tabellen dargestellt werden. Genauerere Sortierungen, wie Sortierung nach Versionsnummer und Wildcard-Filterung des Verzeichnisindizes werden unterstützt.
mod_include
Neue Anweisungen erlauben es, die Standard Start- und Endtags von SSI-Elementen zu ändern. Zudem können die Default-Formate für Fehlermeldungen und Zeitangaben nun ebenfalls in der Serverkonfiguration vorgenommen werden. Auf die Ergebnisse der Auswertung und Gruppierung von regulären Ausdrücken (jetzt auf Basis der Perl's Regular Expression Syntax) kann über die mod_include Variablen $0 bis $9 zugegriffen werden.
mod_auth_dbm
DBM-ähnliche Datenbanken werden jetzt durch die Konfigurationsaweisung AuthDBMType unterstützt.
mod_proxy
Neue <Proxy>-Konfigurationssektionen bringen eine besser lesbarere (und intern schnellere) Kontrolle der genutzten Websites. Die überladene <Directory "proxy:...">-Anweisung wird nicht mehr unterstützt. Das Modul wurde in mehrere Module aufgeteilt, die jeweils ein bestimmtes Übertragungsprotokoll implementieren. Diese sind proxy_connect, proxy_ftp und proxy_http.