prefork Implementiert einen im Voraus forkenden Webserver ohne Thread-Unterstützung MPM prefork.c mpm_prefork_module

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.

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.

CoreDumpDirectory EnableExceptionHook PidFile Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild ScoreBoardFile ReceiveBufferSize SendBufferSize ServerLimit StartServers User Group AcceptMutex MaxSpareServers Maximale Anzahl der unbeschäftigten Kindprozesse des Servers MaxSpareServers Anzahl MaxSpareServers 10 server config

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.

MinSpareServers StartServers
MinSpareServers Minimale Anzahl der unbeschäftigten Kindprozesse des Servers MinSpareServers Anzahl MinSpareServers 5 server config

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.

MaxSpareServers StartServers