mod_cache.xml.fr revision 1db884f97626adc6cdca05468e9aad3868879f56
6da407b2e43a613ec833f14d8c05d4494a27f17aslive<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
6da407b2e43a613ec833f14d8c05d4494a27f17aslive<?xml-stylesheet type="text/xsl" href="/style/manual.fr.xsl"?>
5f5d1b4cc970b7f06ff8ef6526128e9a27303d88nd<!-- English Revision : 1590566 -->
acc36ab93565d2880447d535da6ca6e5feac7a70nd<!-- French translation : Lucien GENTIS -->
acc36ab93565d2880447d535da6ca6e5feac7a70nd<!-- Reviewed by : Vincent Deffontaines -->
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding Licensed to the Apache Software Foundation (ASF) under one or more
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding contributor license agreements. See the NOTICE file distributed with
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding this work for additional information regarding copyright ownership.
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding The ASF licenses this file to You under the Apache License, Version 2.0
acc36ab93565d2880447d535da6ca6e5feac7a70nd (the "License"); you may not use this file except in compliance with
acc36ab93565d2880447d535da6ca6e5feac7a70nd the License. You may obtain a copy of the License at
acc36ab93565d2880447d535da6ca6e5feac7a70nd Unless required by applicable law or agreed to in writing, software
acc36ab93565d2880447d535da6ca6e5feac7a70nd distributed under the License is distributed on an "AS IS" BASIS,
acc36ab93565d2880447d535da6ca6e5feac7a70nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
acc36ab93565d2880447d535da6ca6e5feac7a70nd See the License for the specific language governing permissions and
acc36ab93565d2880447d535da6ca6e5feac7a70nd limitations under the License.
6da407b2e43a613ec833f14d8c05d4494a27f17aslive<description>Filtre de mise en cache HTTP conforme à la RFC 2616</description>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <note type="warning">Ce module doit être utilisé avec précautions
6da407b2e43a613ec833f14d8c05d4494a27f17aslive car lorsque la directive <directive
6da407b2e43a613ec833f14d8c05d4494a27f17aslive module="mod_cache">CacheQuickHandler</directive> est définie à sa
6da407b2e43a613ec833f14d8c05d4494a27f17aslive valeur par défaut <strong>on</strong>, les directives <directive
6da407b2e43a613ec833f14d8c05d4494a27f17aslive module="mod_access_compat">Allow</directive> and <directive
6da407b2e43a613ec833f14d8c05d4494a27f17aslive module="mod_access_compat">Deny</directive> sont court-circuitées. Vous
6da407b2e43a613ec833f14d8c05d4494a27f17aslive ne devez donc pas activer la gestion rapide de la mise en cache pour
6da407b2e43a613ec833f14d8c05d4494a27f17aslive un contenu auquel vous souhaitez limiter l'accès en fonction du nom
6da407b2e43a613ec833f14d8c05d4494a27f17aslive d'hôte du client, de l'adresse IP ou d'une variable
6da407b2e43a613ec833f14d8c05d4494a27f17aslive d'environnement.</note>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p><module>mod_cache</module> implémente un <strong>filtre de mise
6da407b2e43a613ec833f14d8c05d4494a27f17aslive en cache de contenu HTTP</strong> conforme à la <a
f629fd8f821ed20d16d76733bc19bf5480986220slive href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a>, avec
f629fd8f821ed20d16d76733bc19bf5480986220slive support de la mise en cache des réponses dont le contenu a été
f629fd8f821ed20d16d76733bc19bf5480986220slive négocié et comportant l'en-tête Vary.</p>
f629fd8f821ed20d16d76733bc19bf5480986220slive <p>La mise en cache conforme à la RFC 2616 fournit un mécanisme
f629fd8f821ed20d16d76733bc19bf5480986220slive permettant de vérifier si un contenu expiré ou dépassé est encore à
f629fd8f821ed20d16d76733bc19bf5480986220slive jour, et peut apporter un gain de performances significatif si le
f629fd8f821ed20d16d76733bc19bf5480986220slive serveur original supporte les <strong>requêtes
f629fd8f821ed20d16d76733bc19bf5480986220slive conditionnelles</strong> en prenant en compte l'en-tête de requête
6da407b2e43a613ec833f14d8c05d4494a27f17aslive href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">If-None-Match</a>.
6da407b2e43a613ec833f14d8c05d4494a27f17aslive Le contenu n'est ainsi régénéré que lorsqu'il a été modifié, et non
6da407b2e43a613ec833f14d8c05d4494a27f17aslive lorsqu'il a expiré.</p>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p>En tant que filtre, <module>mod_cache</module> peut être placé
6da407b2e43a613ec833f14d8c05d4494a27f17aslive en face d'un contenu issu de tout gestionnaire, y compris
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <strong>des fichiers à accès séquentiel</strong> (servis depuis un
6da407b2e43a613ec833f14d8c05d4494a27f17aslive disque lent mis en
6da407b2e43a613ec833f14d8c05d4494a27f17aslive cache sur un gros disque), la sortie d'un <strong>script
6da407b2e43a613ec833f14d8c05d4494a27f17aslive CGI</strong> ou d'un <strong>générateur de contenu
6da407b2e43a613ec833f14d8c05d4494a27f17aslive dynamique</strong>, ou du contenu <strong>mandaté depuis un autre
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p>Dans la configuration par défaut, <module>mod_cache</module>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive place le filtre de mise en cache aussi loin que possible dans la
6da407b2e43a613ec833f14d8c05d4494a27f17aslive pile de filtres, utilisant le <strong>gestionnaire rapide</strong>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive pour court-circuiter tout traitement par requête lors de l'envoi du
f629fd8f821ed20d16d76733bc19bf5480986220slive contenu au client. Dans ce mode opératoire,
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <module>mod_cache</module> peut être considéré comme un serveur
6da407b2e43a613ec833f14d8c05d4494a27f17aslive mandataire avec cache fixé en tête du serveur web, alors qu'il
6da407b2e43a613ec833f14d8c05d4494a27f17aslive s'exécute dans ce même serveur web.</p>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p>Lorsque le gestionnaire rapide est désactivé via la directive
d3a52d99691581fffaf2a375a80808d943807189poirier <directive module="mod_cache">CacheQuickHandler</directive>, il
d3a52d99691581fffaf2a375a80808d943807189poirier devient possible d'insérer le filtre <strong>CACHE</strong> à un
d3a52d99691581fffaf2a375a80808d943807189poirier point de la pile de filtres choisi par l'administrateur. Ceci permet
d3a52d99691581fffaf2a375a80808d943807189poirier de mettre en cache un contenu avant que celui-ci ne soit
d3a52d99691581fffaf2a375a80808d943807189poirier personnalisé par le filtre <module>mod_include</module>, ou
d3a52d99691581fffaf2a375a80808d943807189poirier éventuellement compressé par le filtre <module>mod_deflate</module>.</p>
d3a52d99691581fffaf2a375a80808d943807189poirier <p>Dans le mode de fonctionnement normal, <module>mod_cache</module>
d3a52d99691581fffaf2a375a80808d943807189poirier peut être contrôlé par les en-têtes <a
d3a52d99691581fffaf2a375a80808d943807189poirier href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">Cache-Control</a>
954857c6508d60fd4e0a8c304698b25a15adbf33poirier href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32">Pragma</a>
954857c6508d60fd4e0a8c304698b25a15adbf33poirier envoyés par un client dans une requête, ou par un serveur dans une
954857c6508d60fd4e0a8c304698b25a15adbf33poirier réponse. Dans des circonstances exceptionnelles,
954857c6508d60fd4e0a8c304698b25a15adbf33poirier <module>mod_cache</module> peut cependant être configuré pour
954857c6508d60fd4e0a8c304698b25a15adbf33poirier outrepasser ces en-têtes et forcer un comportement spécifique au
d3a52d99691581fffaf2a375a80808d943807189poirier site, bien qu'un tel comportement sera limité à ce cache seulement,
d3a52d99691581fffaf2a375a80808d943807189poirier et n'affectera pas les opérations des autres caches qui peuvent
d3a52d99691581fffaf2a375a80808d943807189poirier s'insérer entre le client et le serveur, et ce type de configuration
bc91276d454cab5923b4a0fcf94931bd0a6bee34poirier ne doit donc être utiliser qu'en cas de nécessité absolue.</p>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p>La RFC 2616 permet au cache de renvoyer des données périmées
6da407b2e43a613ec833f14d8c05d4494a27f17aslive pendant que l'entrée périmée correspondante est mise à jour depuis
6da407b2e43a613ec833f14d8c05d4494a27f17aslive le serveur original, et <module>mod_cache</module> supporte cette
6da407b2e43a613ec833f14d8c05d4494a27f17aslive fonctionnalité lorsque la directive <directive
6da407b2e43a613ec833f14d8c05d4494a27f17aslive module="mod_cache">CacheLock</directive> est configurée en
6da407b2e43a613ec833f14d8c05d4494a27f17aslive conséquence. De telles réponses comportent un en-tête HTTP <a
6da407b2e43a613ec833f14d8c05d4494a27f17aslive href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46">Warning</a>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive contenant un code de réponse 110. La RFC 2616 permet aussi au cache
6da407b2e43a613ec833f14d8c05d4494a27f17aslive de renvoyer des données périmées lorsque la tentative de mise à jour
6da407b2e43a613ec833f14d8c05d4494a27f17aslive des données périmées renvoie une erreur 500 ou supérieure, et cette
6da407b2e43a613ec833f14d8c05d4494a27f17aslive fonctionnalité est supportée par défaut par
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <module>mod_cache</module>. De telles réponses comportent un en-tête HTTP <a
6da407b2e43a613ec833f14d8c05d4494a27f17aslive href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46">Warning</a>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive contenant un code de réponse 111.</p>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p><module>mod_cache</module> requiert les services d'un ou
6da407b2e43a613ec833f14d8c05d4494a27f17aslive plusieurs modules de gestion de stockage. La distribution Apache de base
6da407b2e43a613ec833f14d8c05d4494a27f17aslive inclut les modules de gestion de stockage suivants :</p>
199a8ee5984e3708982fab1ba6ebb0a5feaea90cnd <dd>implémente un gestionnaire de stockage sur disque. Les en-têtes
6da407b2e43a613ec833f14d8c05d4494a27f17aslive et corps sont stockés séparément sur le disque dans une structure de
6da407b2e43a613ec833f14d8c05d4494a27f17aslive répertoires basée sur le condensé md5 de l'URL mise en cache.
6da407b2e43a613ec833f14d8c05d4494a27f17aslive Plusieurs réponses à contenu négocié peuvent être stockées en même
6da407b2e43a613ec833f14d8c05d4494a27f17aslive temps, mais la mise en cache de contenus partiels n'est pas
6da407b2e43a613ec833f14d8c05d4494a27f17aslive supportée par ce module. L'utilitaire
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <program>htcacheclean</program> permet de lister et de supprimer les
6da407b2e43a613ec833f14d8c05d4494a27f17aslive URLs mises en cache, et de maintenir le cache en deçà de
6da407b2e43a613ec833f14d8c05d4494a27f17aslive certaines limites de taille et de nombre d'inodes.</dd>
1b6d7a3923d2a5cd56970ee9c4389fddd2e402e6kess <dd>Implémente un gestionnaire de stockage basé sur un cache d'objets
6da407b2e43a613ec833f14d8c05d4494a27f17aslive partagés. Les en-têtes et corps sont stockés ensemble sous une seule
6da407b2e43a613ec833f14d8c05d4494a27f17aslive clé basée sur l'URL de la réponse mise en cache. Des réponses à
6da407b2e43a613ec833f14d8c05d4494a27f17aslive contenus multiples négociés peuvent être stockées simultanément, mais
6da407b2e43a613ec833f14d8c05d4494a27f17aslive ce module ne supporte pas la mise en cache de contenus partiels.</dd>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p>Pour de plus amples détails, une description, et des exemples,
6da407b2e43a613ec833f14d8c05d4494a27f17aslive reportez-vous au <a href="/caching.html">Guide de la mise en
6da407b2e43a613ec833f14d8c05d4494a27f17aslive<section id="related"><title>Modules apparentés et directives</title>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <modulelist>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive </modulelist>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directivelist>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_disk">CacheRoot</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_disk">CacheDirLevels</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_disk">CacheDirLength</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_disk">CacheMinFileSize</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_disk">CacheMaxFileSize</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_socache">CacheSocache</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_socache">CacheSocacheMaxTime</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_socache">CacheSocacheMinTime</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_socache">CacheSocacheMaxSize</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_socache">CacheSocacheReadSize</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive module="mod_cache_socache">CacheSocacheReadTime</directive>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive </directivelist>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive<section id="sampleconf"><title>Exemple de configuration</title>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive# Exemple de configuration du cache
6da407b2e43a613ec833f14d8c05d4494a27f17aslive<IfModule mod_cache.c>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive LoadModule cache_disk_module modules/mod_cache_disk.so
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <IfModule mod_cache_disk.c>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive CacheRoot c:/cacheroot
6da407b2e43a613ec833f14d8c05d4494a27f17aslive CacheEnable disk /
6da407b2e43a613ec833f14d8c05d4494a27f17aslive CacheDirLevels 5
6da407b2e43a613ec833f14d8c05d4494a27f17aslive CacheDirLength 3
6da407b2e43a613ec833f14d8c05d4494a27f17aslive </IfModule>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
6da407b2e43a613ec833f14d8c05d4494a27f17aslive# des mises à jour de sécurité
6da407b2e43a613ec833f14d8c05d4494a27f17aslive CacheDisable http://security.update.server/update-list/
6da407b2e43a613ec833f14d8c05d4494a27f17aslive</IfModule>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive </highlight>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive<section id="thunderingherd"><title>Eviter une tempête de requête</title>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p>Lorsqu'une entrée du cache est périmée, <module>mod_cache</module>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive soumet une requête conditionnelle au processus d'arrière-plan, qui est
6da407b2e43a613ec833f14d8c05d4494a27f17aslive censé confirmer la validité de l'entrée du cache, ou dans la négative
6da407b2e43a613ec833f14d8c05d4494a27f17aslive envoyer une entrée mise à jour.</p>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p>Un court mais non négligeable laps de temps existe entre le moment
6da407b2e43a613ec833f14d8c05d4494a27f17aslive où l'entrée du cache est périmée, et le moment où elle est mise à
6da407b2e43a613ec833f14d8c05d4494a27f17aslive jour. Sur un serveur fortement chargé, un certain nombre de requêtes
6da407b2e43a613ec833f14d8c05d4494a27f17aslive peut arriver pendant ce laps de temps, et provoquer une
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <strong>tempête</strong> de requêtes susceptibles de saturer le
6da407b2e43a613ec833f14d8c05d4494a27f17aslive processus d'arrière-plan de manière soudaine et imprédictible.</p>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p>Pour contenir cette tempête, on peut utiliser la directive
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <directive>CacheLock</directive> afin de définir un répertoire où
6da407b2e43a613ec833f14d8c05d4494a27f17aslive seront créés <strong>à la volée</strong> des verrous pour les URLs.
6da407b2e43a613ec833f14d8c05d4494a27f17aslive Ces verrous sont utilisés comme autant d'<strong>indications</strong>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive par les autres requêtes, soit pour empêcher une tentative de mise en
6da407b2e43a613ec833f14d8c05d4494a27f17aslive cache (un autre processus est en train de récupérer l'entité), soit
6da407b2e43a613ec833f14d8c05d4494a27f17aslive pour indiquer qu'une entrée périmée est en cours de mise à jour
6da407b2e43a613ec833f14d8c05d4494a27f17aslive (pendant ce temps, c'est le contenu périmé qui sera renvoyé).
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <title>Mise en cache initiale d'une entrée</title>
6da407b2e43a613ec833f14d8c05d4494a27f17aslive <p>Lorsqu'une entité est mise en cache pour la première fois, un
6da407b2e43a613ec833f14d8c05d4494a27f17aslive verrou est créé pour cette entité jusqu'à ce que la réponse ait été
6da407b2e43a613ec833f14d8c05d4494a27f17aslive entièrement mise en cache. Pendant la durée de vie du verrou, le
6da407b2e43a613ec833f14d8c05d4494a27f17aslive cache va empêcher une seconde tentative de mise en cache de la même
f629fd8f821ed20d16d76733bc19bf5480986220slive entité. Bien que cela ne suffise pas à contenir la tempête de
6da407b2e43a613ec833f14d8c05d4494a27f17aslive requêtes, toute tentative de mettre en cache la même entité
7db9f691a00ead175b03335457ca296a33ddf31bnd plusieurs fois simultanément est stoppée.
devient par conséquent périmée, un verrou est créé pour cette entité
<IfModule mod_cache.c>
en cache après avoir été interprété par <module>mod_include</module>,
<dt>cache-revalidate</dt><dd>Le contenu du cache était périmé, a été
CustomLog cached-requests.log common env=cache-hit
CustomLog uncached-requests.log common env=cache-miss
CustomLog revalidated-requests.log common env=cache-revalidate
CustomLog invalidated-requests.log common env=cache-invalidate
# Mise en cache des contenus mandatés en direct depuis www.example.org (gestionnaire normal ou rapide)
CacheEnable disk http://www.example.org/
CacheEnable disk http://*example.org/
CacheEnable disk http://.example.org/
partir du cache si la ressource d'arrière-plan n'a pas été modifiée.</p>
CacheKeyBaseURL http://www.example.com/