<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_file_cache.xml.meta">
<name>mod_file_cache</name>
<description>Speichert eine Reihe statischer Dateien im Arbeitsspeicher
</description>
<status>Experimentell</status>
<sourcefile>mod_file_cache.c</sourcefile>
<identifier>file_cache_module</identifier>
<summary>
<note type="warning">
Dieses Modul sollte mit Vorsicht benutzt werden, weil es - falsch
verwendet -
schnell einen Server zum Absturz bringen kann. Lesen Sie daher diese
Dokumentation aufmerksam durch.
</note>
<p>Das <em>Caching</em> häufig angeforderter Dateien, die sich
nur selten ändern, ist ein Verfahren zur Reduzierung der Serverlast.
<module>mod_file_cache</module> stellt zwei Möglichkeiten für das
Caching
häufig angeforderter <em>statischer</em> Dateien zur Verfügung.
Über
Konfigurationsdirektiven kann das Modul <module>mod_file_cache</module>
dazu veranlasst werden, entweder eine <code>mmap()</code>-Datei zu
öffnen oder eine Datei vorab zu öffnen und den
<em>Datei-Deskriptor</em>
der geöffneten Datei zu speichern. Beide Verfahren verringern die
Serverbelastung
bei der Verarbeitung von Anforderungen dieser Dateien dadurch, dass sie
einen Teil der Arbeit bereits beim Serverstart übernehmen
(insbesondere die Dateiein- und Ausgabe).</p>
<p>Hinweis: Mit diesem Verfahren können CGI-Programme oder
andere Dateien, die von speziellen Content-Handlern bedient werden, nicht
beschleunigt werden. Es kann nur für reguläre Dateien benutzt
werden, die
normalerweise vom eigentlichen Apache-Content-Handler bearbeitet werden.</p>
<p>Dieses Modul ist eine Erweiterung des Moduls
<code>mod_mmap_static</code> der Apache-Version 1.3 und stimmt in
vielen Teilen mit diesem überein.</p>
</summary>
<section id="using"><title>mod_file_cache verwenden</title>
<p><module>mod_file_cache</module> speichert eine Liste von Dateien,
welche mit Hilfe der Direktiven
<directive module="mod_file_cache">MMapFile</directive> oder
<directive module="mod_file_cache">CacheFile</directive>
in der Server-Konfiguration definiert wird.</p>
<p>Nicht alle Betriebssysteme unterstützen beide Direktiven.
Apache für Windows unterstützt beispielsweise zur Zeit die
<directive module="mod_file_cache">MMapStatic</directive>-Direktive
nicht, während andere Betriebssysteme wie AIX beide unterstützen.
Wenn Sie
versuchen, eine nicht unterstützte Direktive zu benutzen, führt
das zu einer
Fehlermeldung in der Fehlerprotokolldatei des Servers. Bei Angabe einer
nicht unterstützten Anweisung wird der Server zwar gestartet, die Datei
kommt aber nicht in den Zwischenspeicher. Bei Betriebssystemen, die beide
Direktiven unterstützen, sollten beide ausprobiert werden, um zu
ermitteln,
welche besser funktioniert.</p>
<section><title>Die MMapFile-Anweisung</title>
<p>Die <directive module="mod_file_cache">MMapFile</directive>-
Anweisung des Moduls <module>mod_file_cache</module> bildet
eine Liste statischer Dateien mit dem Systemaufruf
<code>mmap()</code> im Speicher ab. Dieser Systemaufruf steht bei
den meisten aktuellen Unix-Derivaten zur Verfügung, aber nicht bei
allen.
Manchmal gibt es systembedingte Grenzen für die
Dateigröße und Anzahl
der Dateien, was wahrscheinlich durch einfaches Ausprobieren am
leichtesten festzustellen ist.</p>
<p>Dieses Memory-Mapping erfolgt nur einmal beim Starten
oder beim Neustart des Servers. Wird eine der zugeordneten Dateien
geändert, dann <em>muss</em> der Server erneut gestartet werden
(siehe <a href="../stopping.html">Stoppen und Neustarten</a>).
Es sei noch einmal darauf hingewiesen, dass die Anfragen mit fehlerhaften
Daten bedient werden können, wenn nach einer Änderung der in
Frage
kommenden Dateien kein Neustart des Servers durchgeführt wird.
Die Verknüpfungen der zu aktualisierenden Dateien sollten aufgehoben
und die Dateien durch die aktualisierte Version ersetzt werden. Dies kann
mit den Befehlen <code>rdist</code> und <code>mv</code> geschehen.
Die Module berücksichtigen Dateiänderungen deshalb nicht, weil
hierfür
bei jedem Zugriff zusätzlich <code>stat()</code> aufgerufen werden
müsste,
was der gewünschten Reduzierung der Ein- und Ausgabeoperationen
entgegensteht.</p>
</section>
<section><title>Die CacheFile-Anweisung</title>
<p>Die <directive module="mod_file_cache">CacheFile</directive>-
Anweisung des Moduls <module>mod_file_cache</module> öffnet einen
<em>Deskriptor</em> oder <em>Dateideskriptor</em> für die mit der
Konfigurationsdirektive aufgeführte Datei oder die aufgeführten
Dateien
und platziert ihn im Zwischenspeicher. Werden die Dateien angefordert,
nimmt der Server den Handler aus dem Zwischenspeicher und übergibt
ihn an die Socket-API von <code>sendfile()</code>
oder <code>TransmitFile()</code> (bei Windows).</p>
<!-- XXX
<p>Insert more details about sendfile API...</p>
-->
<p>Diese Zwischenspeicherung der Datei-Handler erfolgt nur einmal beim
Serverstart oder beim Neustart. Wird eine Datei im Dateisystem
geändert,
dann <em>muss</em> der Server neu gestartet werden (siehe
<a href="../stopping.html">Stoppen und Neustarten</a>). Es sei noch
einmal darauf hingewiesen, dass die Anfragen mit fehlerhaften
Daten bedient werden können, wenn nach einer Änderung der in
Frage
kommenden Dateien kein Neustart des Servers durchgeführt wird.
Die Verknüpfungen der zu aktualisierenden Dateien zur alten Datei
sollten aufgehoben und die Dateien durch die
aktualisierte Version ersetzt werden. Dies kann
mit den Befehlen <code>rdist</code> und <code>mv</code> geschehen.</p>
</section>
<note><title>Hinweis</title>
<p>Ärgern Sie sich nicht über das Fehlen einer Direktive, die
alle Dateien eines
Verzeichnisses rekursiv zwischenspeichert. Schlagen Sie unter der
<directive module="core">Include</directive>-Direktive nach und machen
Sie sich diesen Befehl zu nutze:</p>
<example>
find /www/htdocs -type f -print \<br />
| sed -e 's/.*/mmapfile &/' > /www/conf/mmap.conf
</example>
</note>
</section>
<directivesynopsis>
<name>MMapFile</name>
<description>Bildet eine Reihe von Dateien beim Serverstart im Speicher
ab</description>
<syntax>MMapFile <var>Dateipfad </var> [<var>Dateipfad</var>] ...</syntax>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Die <directive>MMapFile</directive>-Direktive bildet eine oder mehrere
Dateien, die mit einer durch Leerzeichen getrennten Liste übergeben
werden,
beim Serverstart im Speicher ab. Beim Herunterfahren des Servers wird diese
Zuordnung automatisch aufgehoben. Wenn die Dateien innerhalb
des Dateisystems verändert wurden, sollte mindestens ein
<code>HUP</code>-
oder <code>USR1</code>-Signal an den Server gesendet werden,
um sie erneut zu lesen.</p>
<p>Vorsicht ist für das Argument <var>Dateipfad</var> geboten:
Es muss exakt mit dem Pfad des vom Apache erzeugten Umwandlungs-Handlers
für URL-zu-Dateiname übereinstimmen. Ein Vergleich von Inodes oder
Ähnlichem für Pfade über symbolische Links <em>usw.</em> ist
nicht
möglich, weil hierfür zusätzliche
<code>stat()</code>-Systemaufrufe
notwendig wären, was nicht erwünscht ist. Dieses Modul muss nicht
unbedingt
mit Dateinamen funktionieren, die mit <module>mod_alias</module> oder
<module>mod_rewrite</module> umgeschrieben wurden.</p>
<example><title>Beispiel</title>
MMapFile /usr/local/apache/htdocs/index.html
</example>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>CacheFile</name>
<description>Speichert beim Serverstart eine Reihe von
Datei-Deskriptoren</description>
<syntax>CacheFile <var>Dateipfad </var> [<var>Dateipfad</var>] ...</syntax>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Die <directive>CacheFile</directive>-Direktive öffnet
Dateideskriptoren für
eine oder mehrere Dateien (die Argumente werden mit Leerzeichen voneinander
getrennt) und platziert sie beim Serverstart im Zwischenspeicher.
Deskriptoren
für zwischengespeicherte Dateien werden beim Herunterfahren des Servers
automatisch geschlossen. Wurden die Dateien im Dateisystem geändert,
dann
sollte der Server neu gestartet werden.</p>
<p>Vorsicht ist für das Argument <var>Dateipfad</var> geboten:
Sie müssen exakt mit denjenigen Pfaden übereinstimmen, die bei der
Umwandlung der URLs zu Pfadnamen von den entsprechenden
Apache-Handlern berechnet werden. Ein Vergleich von Inodes oder
Ähnlichem für Pfade über symbolische Links <em>usw.</em> ist
nicht
möglich, weil hierfür zusätzliche
<code>stat()</code>-Systemaufrufe
notwendig wären, was nicht zu verantworten wäre. Es wird nicht
garantiert,
dass mit <module>mod_alias</module> oder
<module>mod_rewrite</module> funktioniert.</p>
<example><title>Beispiel</title>
CacheFile /usr/local/apache/htdocs/index.html
</example>
</usage>
</directivesynopsis>
</modulesynopsis>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]