| |
den Status-Code entsprechend setzen. Zuletzt wird ein Protokollierungs-Modul
auf die Request-Felder zugreifen, um in einer Log-Datei zu speichern, was
wann mit welchem Erfolg an wen ausgeliefert wurde (mehr zum Logging siehe
Abschnitt 3.8).
Ein Webserver im Betrieb erhält viele Anfragen. Einige der Anfragen kom-
men an und müssen bearbeitet werden, während andere Anfragen noch nicht
zu Ende bearbeitet sind. Um Anfragen simultan bearbeiten zu können, startet
der Apache Webserver mehrere Child-Prozesse. Jeder Child-Prozess ist in der
Lage eine Anfrage zu bearbeiten. Kommt eine Anfrage herein, weist der Apache
Server diese Anfrage einem wartenden (freien) Child-Prozess zu. Dieser Child-
Prozess arbeitet die Anfrage ab und steht danach wieder für neue Anfragen
zur Verfügung. Wird eine bestimmte Zahl freier Child-Prozesse unterschritten,
startet der Apache Server neue Child-Prozesse. Umgekehrt, werden überzähli-
ge, sich in Wartebereitschaft befindliche Child-Prozesse zur Einsparung von
Systemresourcen beendet.
In der Konfigurationsdatei können dazu genaue Einstellungen gemacht werden,
z.B. wieviele Child-Prozesse bei Serverstart gestartet werden sollen (Direkti-
ve: StartServers), wieviele sich mindestens/höchstens in Wartebereitschaft
befinden sollen (MinSpareServers/MaxSpareServers) und wieviele Anfragen
insgesamt simultan verarbeitet werden dürfen (MaxClients).
Die Child-Prozesse sind, um bei längerem Betrieb Memory-Leaks zu ver-
meiden, so konzipiert, dass sie sich nach einer bestimmten Anzahl von be-
arbeiteten Anfragen selbst beenden. Diese Anzahl kann mit der Direktive
MaxRequestsPerChild festgelegt werden.
3.4 Block-Direktiven und Virtual Hosting
Dieser Abschnitt geht auf das Blocken von Direktiven ein. Ein Block von Direk-
tiven fasst eine oder mehrere Direktiven zusammen. Direktiven in einem Block
werden nur unter bestimmten Bedingungen oder in einem bestimmten Kontext
angewendet. Apache erlaubt so die Anwendung von Direktiven auf Verzeichnis-
se, Dateien und virtuelle Hosts.
Sollen für ein bestimmtes Verzeichnis zusätzliche oder andere Direktiven als die
globalen gelten, kann die <Directory>-Direktive benutzt werden. Das folgende
Beispiel zeigt einen Direktivenblock, der nur für das Verzeichnis mit dem ab-
soluten Pfad /usr/local/http/htdocs/extra gültig ist. Die eingeschlossenen
Direktiven erlauben einen Zugri auf dieses Verzeichnis nur von IP-Adressen,
die mit 128.176 anfangen. Nur Benutzer des Netzes der Uni-Muenster könnten
somit auf Dateien im Verzeichnis /usr/local/http/htdocs/extra zugreifen.
Neben diesen Direktiven könnten noch beliebig viele andere Direktiven in dem
Block stehen.
<Directory /usr/local/http/htdocs/extra>
...
order deny,allow
deny from all
9
|  |
|
| |
|
|