mirror of
https://github.com/apache/httpd.git
synced 2025-07-04 05:22:30 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1554562 13f79535-47bb-0310-9956-ffa450edef68
238 lines
12 KiB
Plaintext
238 lines
12 KiB
Plaintext
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
|
|
<!-- English Revision : 1330994 -->
|
|
<!-- French translation : Lucien GENTIS -->
|
|
<!-- Reviewed by : Vincent Deffontaines -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_file_cache.xml.meta">
|
|
|
|
<name>mod_file_cache</name>
|
|
<description>Mise en cache mémoire d'une liste statique de
|
|
fichiers</description>
|
|
<status>Experimental</status>
|
|
<sourcefile>mod_file_cache.c</sourcefile>
|
|
<identifier>file_cache_module</identifier>
|
|
|
|
<summary>
|
|
|
|
<note type="warning">
|
|
Ce module doit être utilisé avec précautions. Il est recommandé de
|
|
lire attentivement ce document, car une mauvaise utilisation de
|
|
<module>mod_file_cache</module> peut facilement conduire à la
|
|
création d'un site inopérant.
|
|
</note>
|
|
|
|
<p>La mise en cache de fichiers souvent demandés mais rarement
|
|
modifiés est une technique qui peut réduire la charge du
|
|
serveur. <module>mod_file_cache</module> met en oeuvre deux
|
|
techniques de mise en cache de fichiers <em>statiques</em>
|
|
fréquemment demandés. Des directives de configuration vous
|
|
permettent d'indiquer à <module>mod_file_cache</module> soit
|
|
d'ouvrir et de charger une image en mémoire d'un fichier avec
|
|
<code>mmap()</code>, soit de pré-ouvrir un fichier et de maintenir en
|
|
service le <em>gestionnaire</em> du fichier. Chacune de ces techniques
|
|
amène à réduire la charge du serveur lors du traitement des
|
|
requêtes concernant ces fichiers, en accomplissant une partie du
|
|
travail nécessaire à la mise à disposition de ces fichiers (en
|
|
particulier les opérations d'entrées/sorties sur les fichiers) au
|
|
démarrage du serveur, plutôt qu'au cours de chaque requête.</p>
|
|
|
|
<p>Note : ces techniques sont inutilisables pour accélérer des
|
|
programmes CGI ou d'autres fichiers servis par des gestionnaires de
|
|
contenu spéciaux. Elles ne peuvent être utilisées que pour des
|
|
fichiers standards en général servis par le gestionnaire de contenu
|
|
de base d'Apache.</p>
|
|
|
|
<p>Ce module est une extension et s'inspire fortement du module
|
|
d'Apache 1.3 <code>mod_mmap_static</code>.</p>
|
|
</summary>
|
|
|
|
<section id="using"><title>Utilisation de mod_file_cache</title>
|
|
|
|
<p><module>mod_file_cache</module> gère la mise en cache d'une liste
|
|
de fichiers définie de manière statique via une des directives
|
|
<directive module="mod_file_cache">MMapFile</directive> ou
|
|
<directive module="mod_file_cache">CacheFile</directive> au niveau
|
|
de la configuration du serveur principal.</p>
|
|
|
|
<p>Les deux directives ne sont pas supportées par toutes les
|
|
plates-formes. Par exemple, Apache pour Windows ne supporte pas
|
|
actuellement la directive <directive
|
|
module="mod_file_cache">MMapFile</directive>, alors que d'autres
|
|
plates-formes, comme AIX, supportent les deux. Vous recevrez un
|
|
message d'erreur dans le journal des erreurs du serveur si vous
|
|
essayez d'utiliser une directive non supportée. Si vous utilisez une
|
|
directive non supportée, le serveur démarrera, mais les fichiers ne
|
|
seront pas mis en cache. Sur les plates-formes qui supportent les
|
|
deux directives, vous devez faire des essais afin de déterminer
|
|
quelle directive vous convient le mieux.</p>
|
|
|
|
<section><title>Directive MMapFile</title>
|
|
|
|
<p>La directive <directive
|
|
module="mod_file_cache">MMapFile</directive> du module
|
|
<module>mod_file_cache</module> permet de transférer en mémoire
|
|
une liste statique de fichiers à l'aide de l'appel système
|
|
<code>mmap()</code>. Cet appel système est disponible sur la
|
|
plupart des plates-formes de style Unix, mais pas sur toutes. Il
|
|
existe parfois des limites spécifiques au système quant à la
|
|
taille et au nombre de fichiers qui peuvent être
|
|
<code>mmap()</code>és, et l'expérimentation est probablement la
|
|
méthode la plus simple pour déterminer ces limites.</p>
|
|
|
|
<p>Ce <code>mmap()</code>age n'est effectué qu'une seul fois au
|
|
démarrage ou redémarrage du serveur. Ainsi, chaque fois qu'un des
|
|
fichiers chargés en mémoire est modifié au niveau du système de
|
|
fichiers, vous <em>devez</em> redémarrer le serveur (voir la
|
|
documentation sur l'<a
|
|
href="../stopping.html">Arrêt et redémarrage</a>). Pour bien
|
|
insister sur ce point, si des fichiers sont modifiés <em>sur
|
|
disque</em>, et si vous ne redémarrez pas le serveur, vous allez
|
|
finir par servir des contenus complètement obsolètes. Vous devez
|
|
mettre à jour les fichiers en renommant l'ancienne version et en
|
|
enregistrant la nouvelle sur disque. Pour y parvenir, on peut
|
|
utiliser des outils comme <code>rdist</code> et <code>mv</code>.
|
|
La raison pour laquelle ce module ne prend pas en compte les
|
|
modifications de fichiers réside dans le fait que cette
|
|
vérification nécessiterait un appel à <code>stat()</code> à chaque
|
|
accès, et en fin de compte, l'augmentation de la consommation de
|
|
ressources finirait par aller contre le but initial de
|
|
réduire les entrées/sorties.</p>
|
|
</section>
|
|
|
|
<section><title>Directive CacheFile</title>
|
|
|
|
<p>La directive <directive
|
|
module="mod_file_cache">CacheFile</directive> du module
|
|
<module>mod_file_cache</module> permet d'associer un
|
|
<em>gestionnaire</em> ou <em>descripteur de fichier</em> à chaque
|
|
fichier énuméré dans la directive de configuration et place ces
|
|
gestionnaires de fichiers ouverts dans le cache. Lorsqu'un des
|
|
fichier est demandé, le serveur sélectionne son gestionnaire dans
|
|
le cache et le transmet à l'API <code>sendfile()</code> (ou
|
|
<code>TransmitFile()</code> sous Windows).</p>
|
|
|
|
<!-- XXX
|
|
<p>Insert more details about sendfile API...</p>
|
|
-->
|
|
|
|
<p>Cette mise en cache des gestionnaire n'est effectuée qu'une
|
|
seule fois au démarrage ou redémarrage du système. Ainsi, chaque
|
|
fois qu'un des fichiers chargés en mémoire est modifié au niveau
|
|
du système de fichiers, vous <em>devez</em> redémarrer le serveur
|
|
(voir la documentation sur l'<a
|
|
href="../stopping.html">Arrêt et redémarrage</a>).
|
|
Pour bien
|
|
insister sur ce point, si des fichiers sont modifiés <em>sur
|
|
disque</em>, et si vous ne redémarrez pas le serveur, vous allez
|
|
finir par servir des contenus complètement obsolètes. Vous devez
|
|
mettre à jour les fichiers en renommant l'ancienne version et en
|
|
enregistrant la nouvelle sur disque. Pour y parvenir, on peut
|
|
utiliser des outils comme <code>rdist</code> et
|
|
<code>mv</code>.</p>
|
|
</section>
|
|
|
|
<note><title>Note</title>
|
|
<p>Ne cherchez pas de directive qui met tous les
|
|
fichiers d'un répertoire en cache, de manière récursive. Pour y
|
|
parvenir, vous pouvez vous reporter à la directive <directive
|
|
module="core">Include</directive>, et considérer cette
|
|
commande :</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>Charge au démarrage une liste de fichiers en
|
|
mémoire</description>
|
|
<syntax>MMapFile <var>chemin fichier</var> [<var>chemin_fichier</var>] ...</syntax>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>La directive <directive>MMapFile</directive> provoque le chargement d'un
|
|
ou plusieurs fichiers (séparés par des espaces) en mémoire au
|
|
démarrage du serveur. Ceux-ci sont automatiquement déchargés de la
|
|
mémoire à l'arrêt du serveur. Lorsqu'un ou plusieurs fichiers ont
|
|
été modifiés sur disque, on doit au minimum envoyer un signal
|
|
<code>HUP</code> ou <code>USR1</code> au serveur afin de les
|
|
re<code>mmap()</code>er.</p>
|
|
|
|
<p>Soyez prudent avec les arguments <var>chemin_fichier</var> : ils
|
|
doivent correspondre exactement au chemin du système de fichier que
|
|
créent les gestionnaires de traduction URL-vers-nom-fichier
|
|
d'Apache. On ne peut pas comparer des inodes ou autres identifiants
|
|
pour mettre en correspondance des chemins à l'aide de liens
|
|
symboliques <em>(etc...)</em>, car là encore, ceci nécessiterait un
|
|
appel à <code>stat()</code> supplémentaire, ce qui est inacceptable.
|
|
Il n'est pas garanti que ce module fonctionne avec des noms de
|
|
fichiers réécrits par <module>mod_alias</module> ou
|
|
<module>mod_rewrite</module>.</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
MMapFile /usr/local/apache/htdocs/index.html
|
|
</highlight>
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>CacheFile</name>
|
|
<description>Met en cache une liste de gestionnaires de fichiers au
|
|
démarrage</description>
|
|
<syntax>CacheFile <var>chemin_fichier</var> [<var>chemin fichier</var>] ...</syntax>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>La directive <directive>CacheFile</directive> associe
|
|
des gestionnaires à un ou plusieurs fichiers (séparés par des
|
|
espaces), et place ceux-ci dans le cache au démarrage du
|
|
serveur. Les gestionnaires des fichiers mis en cache sont
|
|
automatiquement fermés à l'arrêt du serveur. Lorsqu'un ou plusieurs
|
|
fichiers ont été modifiés sur disque, le serveur doit être redémarré
|
|
afin que les modifications soient prises en compte par le cache.</p>
|
|
|
|
<p>Soyez prudent avec les arguments <var>chemin_fichier</var> : ils
|
|
doivent correspondre exactement au chemin du système de fichier que
|
|
créent les gestionnaires de traduction URL-vers-nom-fichier
|
|
d'Apache. On ne peut pas comparer des inodes ou autres identifiants
|
|
pour mettre en correspondance des chemins à l'aide de liens
|
|
symboliques <em>(etc...)</em>, car là encore, ceci nécessiterait un
|
|
appel à <code>stat()</code> supplémentaire, ce qui est inacceptable.
|
|
Il n'est pas garanti que ce module fonctionne avec des noms de
|
|
fichiers réécrits par <module>mod_alias</module> ou
|
|
<module>mod_rewrite</module>.</p>
|
|
|
|
<example><title>Exemple</title>
|
|
<highlight language="config">
|
|
CacheFile /usr/local/apache/htdocs/index.html
|
|
</highlight>
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|