Apache HTTP Server Version 2.4

Apache > HTTP-Server > Dokumentation > Version 2.4

# Multi-Processing-Module (MPMs)

Diese Übersetzung ist möglicherweise nicht mehr aktuell. Bitte prüfen Sie die englische Version auf die neuesten Änderungen.

Das Dokument beschreibt, was ein Multi-Processing-Modul ist und wie solche Module beim Apache HTTP Server verwendet werden.

## Einführung

Der Apache HTTP Server wurde als leistungsfähiger und flexibler Webserver konzipiert, der auf einer Vielzahl von Plattformen in einer Reihe unterschiedlicher Umgebungen arbeiten kann. Unterschiedliche Plattformen und unterschiedliche Umgebungen verlangen oftmals verschiedene Fähigkeiten oder kennen verschiedene Wege, die gleiche Funktionaltät sehr effizient zu implementieren. Der Apache hat durch seinen modularen Aufbau schon immer eine breite Auswahl von Umgebungen unterstützt. Dieses Design erlaubt es dem Webmaster, durch Auswahl der Module, die zur Kompilierungszeit oder zur Laufzeit geladen werden, die Features auszuwählen, die in den Server intregiert werden.

Der Apache 2.0 erweitert dieses modulare Design auf die grundlegenden Funktionen eines Webservers. Der Server wird mit einer Auswahl von Multi-Processing-Modulen (MPMs) ausgeliefert, die für die Bindung an Netzwerkports der Maschine, die Annahme von Anfragen und die Abfertigung von Kindprozessen zur Behandlung der Anfragen zuständig sind.

Die Erweiterung des modularen Aufbaus auf diese Ebene des Servers bringt zwei wesentliche Vorteile:

- Der Apache kann nun eine Vielfalt von Betriebssystemen sauberer und effizienter unterstützen. Insbesondere die Windows-Version des Apache ist jetzt deutlich effizienter, da `mpm_winnt` native Netzwerkfähigkeiten anstelle der im Apache 1.3 verwendeten POSIX-Schicht benutzen kann. Dieser Vorteil gilt auch für andere Betriebssysteme, für die spezielle MPMs implementiert sind.
- Der Server läßt sich besser auf die Bedürfnisse der jeweiligen Website anpassen. Sites beispielsweise, die eine hohe Skalierbarkeit benötigen, können ein Threaded-MPM wie `worker` oder `event` wählen, während Sites, die Stabilität oder Kompatibilität mit älterer Software erfordern, `prefork` wählen können.

Auf Anwenderebene erscheinen MPMs fast wie andere Apache-Module. Der Hauptunterschied ist, dass jeweils nur ein einziges MPM in den Server geladen werden kann. Die Liste der verfügbaren MPMs finden Sie im Modul-Index.

## Auswahl eines MPMs

MPMs müssen während der (Anm.d.Ü.: Quelltext-)Konfiguration ausgewählt und in den Server einkompiliert werden. Compiler sind in der Lage eine Reihe von Funktionen zu optimieren, wenn Threads verwendet werden. Sie können dies allerdings nur, wenn sie wissen, dass Threads benutzt werden.

Um das gewünschte MPM tatsächlich auszuwählen, verwenden Sie beim `configure`-Skript das Argument `--with-mpm=NAME`. NAME ist der Name des gewünschten MPMs.

Ist der Server kompiliert, so ist es mittels `./httpd -l` möglich, das ausgewählte MPM zu ermitteln. Dieser Befehl listet alle in den Server einkompilierten Module auf, einschließlich des MPM.

## MPM-Voreinstellungen

Die folgende Tabelle gibt die voreingestellten MPMs für verschiedene Betriebssysteme an. Wenn Sie während der Kompilierung keine andere Auswahl treffen, wird dieses MPM gewählt.

BeOS | `beos`
Netware | `mpm_netware`
OS/2 | `mpmt_os2`
Unix | `prefork`
Windows | `mpm_winnt`