30.3. Apache-Module

Apache kann über Module um viele Funktionen erweitert werden und mit solchen Modulen CGI-Skripten in verschiedenen Programmiersprachen ausführen. Es stehen nicht nur Perl und PHP zur Verfügung, sondern auch weitere Skriptsprachen wie Python oder Ruby. Zudem gibt es Module für die gesicherte Übertragung von Daten mit SSL (Secure Sockets Layer), die Authentifizierung von Benutzern, erweitertes Protokollieren (Logging) und für vieles mehr.

Apache kann mit dem notwendigen Know-How über selbstgeschriebene Module an ausgefallene Anforderungen und Wünsche angepasst werden. Referenzen auf weiterführende Informationen finden Sie in Abschnitt 30.12.4, „Weitere Quellen“

Wenn Apache eine Anfrage bearbeitet, können für die Bearbeitung dieser Anfrage einer oder mehrere Handler eingetragen sein. Dies geschieht über Anweisungen in der Konfigurationsdatei. Die Handler können Teil von Apache sein, es kann aber auch ein Modul für die Bearbeitung aufgerufen werden. Dadurch lässt sich dieser Vorgang sehr flexibel gestalten. Zudem besteht die Möglichkeit, eigene Module in Apache einzuklinken und so Einfluss auf die Bearbeitung der Anfragen zu nehmen.

Apache ist in einem hohen Grade modular aufgebaut, so dass der Server nur minimale Aufgaben erfüllt. Alles andere wird über Module realisiert. Das geht so weit, dass selbst die Bearbeitung von HTTP über Module realisiert ist. Apache muss demnach nicht unbedingt ein Webserver sein, er kann über andere Module auch ganz andere Aufgaben übernehmen. So gibt es als Modul beispielsweise einen Proof-of-Concept Mailserver (POP3) auf Apache-Basis.

Mit Apache-Modulen lassen sich eine Reihe nützlicher Zusatzfunktionen realisieren:

Virtuelle Hosts

Über virtuelle Hosts können mit einer Instanz von Apache auf einem einzigen Rechner mehrere Webseiten betrieben werden, wobei der Webserver für den Endbenutzer wie mehrere unabhängige Webserver wirkt. Dabei können die virtuellen Hosts auf unterschiedlichen IP-Adressen oder namensbasiert konfiguriert sein. Dies erspart die Anschaffungskosten und den Administrationsaufwand für zusätzliche Rechner.

Flexibles Umschreiben von URLs

Apache bietet eine Vielzahl von Möglichkeiten, URLs zu manipulieren und umzuschreiben (URL-Rewriting). Näheres dazu findet man in der Dokumentation zu Apache.

Content Negotiation

Apache kann in Abhängigkeit von den Fähigkeiten des Client (Browser) eine für diesen Client maßgeschneiderte Seite ausliefern. So kann man für ältere Browser oder Browser, die nur im Textmodus arbeiten (wie Lynx), einfachere Versionen der Seiten ausliefern, die keine Frames verwenden. Auf diese Weise kann man auch die Inkompatibilitäten der verschiedenen Browser bei JavaScript umgehen, indem man jedem Browser eine passende Version der Seiten liefert — wenn man denn den Aufwand treiben will, für jeden dieser Browser den JavaScript-Code anzupassen.

Flexible Fehlerbehandlung

Falls ein Fehler auftritt (z. B. Seite ist nicht verfügbar), kann man flexibel reagieren und eine angemessene Antwort zurückgeben. Diese kann auch dynamisch erstellt werden, beispielsweise mit Hilfe von CGI.


SUSE LINUX Administrationshandbuch 9.3