mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-31 19:10:37 +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>
 |