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