Apache HTTP Server Version 2.4

Apache > HTTP-Server > Dokumentation > Version 2.4 > Module

# Apache-MPM prefork

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

Beschreibung: | Implementiert einen im Voraus forkenden Webserver ohne Thread-Unterstützung
Status: | MPM
Modulbezeichner: | mpm_prefork_module
Quelltext-Datei: | prefork.c

### Zusammenfassung

Dieses Multi-Processing-Modul (MPM) implementiert einen im Voraus forkenden Webserver ohne Thread-Unterstützung, der Anfragen auf ähnliche Weise behandelt wie der Apache 1.3. Es ist für Angebote geeignet, die aus Kompatibilitätsgründen mit nicht-Thread-sicheren Bibliotheken Threading vermeiden müssen. Es ist außerdem das geeignetste MPM, um jede Anfrage isoliert zu bearbeiten, so dass Probleme mit einem einzelnen Prozess keinen anderen beeinflussen.

Das MPM ist stark selbstregulierend, so dass es selten notwendig ist, seine Konfigurationseinstellungen zu justieren. Das Wichtigste ist, dass `MaxClients` gross genug ist, so viele gleichzeitige Anfragen zu bedienen, wie Sie erwarten, aber klein genug, um sicherzustellen, dass genug physischer Arbeitsspeicher für alle Prozesse vorhanden ist.

### Themen

- Arbeitsweise

### Direktiven

### Bugfix checklist

- httpd changelog
- Known issues
- Report a bug

### Siehe auch

- Bestimmen der vom Apache verwendeten Adressen und Ports

## Arbeitsweise

Ein einzelner Steuerprozess ist für den Start von Kindprozessen verantwortlich, die auf Verbindungen warten und diese bedienen, sobald sie eintreffen. Der Apache versucht immer, mehrere freie oder unbeschäftigte Serverprozesse vorzuhalten, die zur Bedienung eingehender Anfragen bereit stehen. Auf diese Weise müssen Clients nicht darauf warten, dass neue Kindprozesse geforkt werden, bevor ihre Anfrage bearbeitet werden kann.

`StartServers`, `MinSpareServers`, `MaxSpareServers` und `MaxClients` regulieren, wie der Elternprozess Kindprozesse zur Bedienung von Anfragen erstellt. Im Allgemeinen ist der Apache sehr selbstregulierend, so dass die meisten Angebote die Voreinstellung dieser Direktiven nicht verändern müssen. Systeme, die mehr als 256 gleichzeitige Anfragen bedienen müssen, können `MaxClients` erhöhen, während Systeme mit begrenztem Arbeitsspeicher möglicherweise `MaxClients` heruntersetzen müssen, um den Server vor Flatterverhalten (Arbeitsspeicherinhalte auf Platte auslagern - und zurück) zu schützen. Weitere Informationen zur Feinabstimmung der Prozesserstellung sind in den Performance-Hinweisen zu finden.

Währen der Elternprozess unter Unix normalerweise als `root` gestartet wird, um sich an Port 80 binden zu können, werden die Kindprozesse unter einem weniger privilegierten Benutzer gestartet. Die Direktiven `User` und `Group` werden dazu verwendet, die Privilegien der Apache-Kindprozesse festzulegen. Die Kindprozesse müssen in der Lage sein, alle Inhalte zu lesen, die sie ausliefern sollen, sollten darüber hinaus jedoch so wenig wie möglich Rechte besitzen.

`MaxRequestsPerChild` bestimmt, wie häufig der Server Prozesse erneuert, indem er alte beendet und neue startet.

## MaxSpareServers-Direktive

Beschreibung: | Maximale Anzahl der unbeschäftigten Kindprozesse des Servers
Syntax: | `MaxSpareServers Anzahl`
Voreinstellung: | `MaxSpareServers 10`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | prefork

Die Direktive `MaxSpareServers` bestimmt das gewünschte Maximum an unbeschäftigten Kindprozessen des Servers. Ein unbeschäftiger Prozess ist einer, der keine Anfrage bedient. Wenn mehr als `MaxSpareServers` Prozesse unbeschäftigt sind, wird der Elternprozess die überschüssigen Prozesse beenden.

Eine Feineinstellung dieses Parameters sollte nur bei sehr beschäftigten Angeboten notwendig sein. Es ist nahezu immer eine schlechte Idee, den Parameter auf einen hohen Wert zu setzen. Wenn Sie versuchen, den Wert kleiner oder gleich `MinSpareServers` zu setzen, wird der Apache ihn automatisch auf `MinSpareServers` `+ 1` korrigieren.

### Siehe auch

- `MinSpareServers`
- `StartServers`

## MinSpareServers-Direktive

Beschreibung: | Minimale Anzahl der unbeschäftigten Kindprozesse des Servers
Syntax: | `MinSpareServers Anzahl`
Voreinstellung: | `MinSpareServers 5`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | prefork

Die Direktive `MinSpareServers` bestimmt das gewünschte Minimum der unbeschäftigten Kindprozesse des Servers. Ein unbeschäftigter Prozess ist einer, der keine Anfrage bedient. Wenn weniger als `MinSpareServers` Prozesse unbeschäftigt sind, dann erstellt der Elternprozess neue mit einer maximalen Rate von 1 pro Sekunde.

Die Feineinstellung des Parameters sollte nur bei sehr beschäftigten Angeboten notwendig sein. Es ist nahezu immer eine schlechte ide, den Parameter auf einen hohen Wert zu setzen.

### Siehe auch

- `MaxSpareServers`
- `StartServers`