mod_cache.xml.fr revision 3016c72ae8173bcfc0989ff1b297d4f27f445108
530eba85dbd41b8a0fa5255d3648d1440199a661slive<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
e942c741056732f50da2074b36fe59805d370650slive<?xml-stylesheet type="text/xsl" href="/style/manual.fr.xsl"?>
5f5d1b4cc970b7f06ff8ef6526128e9a27303d88nd<!-- English Revision : 1021546 -->
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<!-- French translation : Lucien GENTIS -->
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd<!-- 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
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd (the "License"); you may not use this file except in compliance with
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd the License. You may obtain a copy of the License at
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd Unless required by applicable law or agreed to in writing, software
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd distributed under the License is distributed on an "AS IS" BASIS,
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd See the License for the specific language governing permissions and
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd limitations under the License.
6b040c2a2a566388097aab66dff8c3c94e853f22slive<description>Mise en cache de contenu référencé par un
6b040c2a2a566388097aab66dff8c3c94e853f22sliveURI.</description>
69f999c99a7ef01d78764bddf02c85cd084b10fdcovener <note type="warning">Ce module doit être utilisé avec précautions
69f999c99a7ef01d78764bddf02c85cd084b10fdcovener car lorsque la directive <directive
69f999c99a7ef01d78764bddf02c85cd084b10fdcovener module="mod_cache">CacheQuickHandler</directive> est définie à sa
69f999c99a7ef01d78764bddf02c85cd084b10fdcovener valeur par défaut <strong>on</strong>, les directives <directive
69f999c99a7ef01d78764bddf02c85cd084b10fdcovener module="mod_authz_host">Allow</directive> and <directive
69f999c99a7ef01d78764bddf02c85cd084b10fdcovener module="mod_authz_host">Deny</directive> sont court-circuitées. Vous
69f999c99a7ef01d78764bddf02c85cd084b10fdcovener ne devez donc pas activer la gestion rapide de la mise en cache pour
6b040c2a2a566388097aab66dff8c3c94e853f22slive un contenu auquel vous souhaitez limiter l'accès en fonction du nom
6b040c2a2a566388097aab66dff8c3c94e853f22slive d'hôte du client, de l'adresse IP ou d'une variable
6b040c2a2a566388097aab66dff8c3c94e853f22slive d'environnement.</note>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <p><module>mod_cache</module> implémente une mise en cache de
6b040c2a2a566388097aab66dff8c3c94e853f22slive contenu HTTP compatible <a
cee399b097f61ab31c81399957f1293b55e1a984nd href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> qui peut
cee399b097f61ab31c81399957f1293b55e1a984nd être utilisée pour mettre en cache des contenus locaux ou mandatés.
cee399b097f61ab31c81399957f1293b55e1a984nd <module>mod_cache</module> requiert les services d'un ou plusieurs
cee399b097f61ab31c81399957f1293b55e1a984nd modules de gestion de stockage. La distribution Apache de base
cee399b097f61ab31c81399957f1293b55e1a984nd inclut un module de gestion de stockage :</p>
1d9308ed0075062953a246d16bcda888a1be1adeslive <dd>implémente un gestionnaire de stockage sur disque.</dd>
1d9308ed0075062953a246d16bcda888a1be1adeslive <p>Les contenus sont stockés dans le cache et extraits de ce dernier
1d9308ed0075062953a246d16bcda888a1be1adeslive en utilisant une clé à base d'URI. Un contenu dont l'accès est
1d9308ed0075062953a246d16bcda888a1be1adeslive protégé ne sera pas mis en cache.</p>
1d9308ed0075062953a246d16bcda888a1be1adeslive <p>Pour de plus amples détails, une description, et des exemples,
6b040c2a2a566388097aab66dff8c3c94e853f22slive reportez-vous au <a href="/caching.html">Guide de la mise en
cee399b097f61ab31c81399957f1293b55e1a984nd<section id="related"><title>Modules apparentés et directives</title>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <modulelist>
cee399b097f61ab31c81399957f1293b55e1a984nd </modulelist>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <directivelist>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <directive module="mod_disk_cache">CacheDirLevels</directive>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <directive module="mod_disk_cache">CacheDirLength</directive>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <directive module="mod_disk_cache">CacheMinFileSize</directive>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <directive module="mod_disk_cache">CacheMaxFileSize</directive>
6b040c2a2a566388097aab66dff8c3c94e853f22slive </directivelist>
6b040c2a2a566388097aab66dff8c3c94e853f22slive<section id="sampleconf"><title>Exemple de configuration</title>
6b040c2a2a566388097aab66dff8c3c94e853f22slive # Exemple de configuration du cache<br />
6b040c2a2a566388097aab66dff8c3c94e853f22slive LoadModule disk_cache_module modules/mod_disk_cache.so<br />
6b040c2a2a566388097aab66dff8c3c94e853f22slive CacheRoot c:/cacheroot<br />
6b040c2a2a566388097aab66dff8c3c94e853f22slive CacheEnable disk /<br />
6b040c2a2a566388097aab66dff8c3c94e853f22slive CacheDirLevels 5<br />
6b040c2a2a566388097aab66dff8c3c94e853f22slive CacheDirLength 3<br />
6b040c2a2a566388097aab66dff8c3c94e853f22slive </IfModule> <br />
1d9308ed0075062953a246d16bcda888a1be1adeslive # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
530eba85dbd41b8a0fa5255d3648d1440199a661slive # des mises à jour de sécurité<br />
cee399b097f61ab31c81399957f1293b55e1a984nd CacheDisable http://security.update.server/update-list/<br />
cee399b097f61ab31c81399957f1293b55e1a984nd </IfModule>
cee399b097f61ab31c81399957f1293b55e1a984nd </example>
cee399b097f61ab31c81399957f1293b55e1a984nd<section id="thunderingherd"><title>Eviter une tempête de requête</title>
cee399b097f61ab31c81399957f1293b55e1a984nd <p>Lorsqu'une entrée du cache est périmée, <module>mod_cache</module>
cee399b097f61ab31c81399957f1293b55e1a984nd soumet une requête conditionnelle au processus d'arrière-plan, qui est
6b040c2a2a566388097aab66dff8c3c94e853f22slive censé confirmer la validité de l'entrée du cache, ou dans la négative
6b040c2a2a566388097aab66dff8c3c94e853f22slive envoyer une entrée mise à jour.</p>
db965e00e32a191217813eba97d8978887942501covener <p>Un court mais non négligeable laps de temps existe entre le moment
db965e00e32a191217813eba97d8978887942501covener où l'entrée du cache est périmée, et le moment où elle est mise à
db965e00e32a191217813eba97d8978887942501covener jour. Sur un serveur fortement chargé, un certain nombre de requêtes
db965e00e32a191217813eba97d8978887942501covener peut arriver pendant ce laps de temps, et provoquer une
db965e00e32a191217813eba97d8978887942501covener <strong>tempête</strong> de requêtes susceptibles de saturer le
db965e00e32a191217813eba97d8978887942501covener processus d'arrière-plan de manière soudaine et imprédictible.</p>
db965e00e32a191217813eba97d8978887942501covener <p>Pour contenir cette tempête, on peut utiliser la directive
6b040c2a2a566388097aab66dff8c3c94e853f22slive <directive>CacheLock</directive> afin de définir un répertoire où
6b040c2a2a566388097aab66dff8c3c94e853f22slive seront créés <strong>à la volée</strong> des verrous pour les URLs.
6b040c2a2a566388097aab66dff8c3c94e853f22slive Ces verrous sont utilisés comme autant d'<strong>indications</strong>
6b040c2a2a566388097aab66dff8c3c94e853f22slive par les autres requêtes, soit pour empêcher une tentative de mise en
6b040c2a2a566388097aab66dff8c3c94e853f22slive cache (un autre processus est en train de récupérer l'entité), soit
c1ce37b2dcce132ff0abf6a15f5225a0e89af5e4slive pour indiquer qu'une entrée périmée est en cours de mise à jour
cee399b097f61ab31c81399957f1293b55e1a984nd (pendant ce temps, c'est le contenu périmé qui sera renvoyé).
6b040c2a2a566388097aab66dff8c3c94e853f22slive <title>Mise en cache initiale d'une entrée</title>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <p>Lorsqu'une entité est mise en cache pour la première fois, un
6b040c2a2a566388097aab66dff8c3c94e853f22slive verrou est créé pour cette entité jusqu'à ce que la réponse ait été
6b040c2a2a566388097aab66dff8c3c94e853f22slive entièrement mise en cache. Pendant la durée de vie du verrou, le
6b040c2a2a566388097aab66dff8c3c94e853f22slive cache va empêcher une seconde tentative de mise en cache de la même
6b040c2a2a566388097aab66dff8c3c94e853f22slive entité. Bien que cela ne suffise pas à contenir la tempête de
6b040c2a2a566388097aab66dff8c3c94e853f22slive requêtes, toute tentative de mettre en cache la même entité
6b040c2a2a566388097aab66dff8c3c94e853f22slive plusieurs fois simultanément est stoppée.
cee399b097f61ab31c81399957f1293b55e1a984nd </section>
1d9308ed0075062953a246d16bcda888a1be1adeslive <title>Mise à jour d'une entrée périmée</title>
1d9308ed0075062953a246d16bcda888a1be1adeslive <p>Lorsqu'une entrée atteint la limite de sa durée de vie, et
530eba85dbd41b8a0fa5255d3648d1440199a661slive devient par conséquent périmée, un verrou est créé pour cette entité
cee399b097f61ab31c81399957f1293b55e1a984nd jusqu'à ce que la réponse ait été soit confirmée comme encore
cee399b097f61ab31c81399957f1293b55e1a984nd valide, soit remplacée par le processus d'arrière-plan. Pendant la
cee399b097f61ab31c81399957f1293b55e1a984nd durée de vie du verrou, une seconde requête entrante va provoquer le
cee399b097f61ab31c81399957f1293b55e1a984nd renvoi de la donnée périmée, et la tempête de requêtes sera
cee399b097f61ab31c81399957f1293b55e1a984nd contenue.</p>
cee399b097f61ab31c81399957f1293b55e1a984nd </section>
cee399b097f61ab31c81399957f1293b55e1a984nd <title>Verrous et en-tête Cache-Control: no-cache</title>
db965e00e32a191217813eba97d8978887942501covener <p>Les verrous ne sont utilisés <strong>qu'à titre
db965e00e32a191217813eba97d8978887942501covener indicatif</strong> pour enjoindre le cache à être plus coopératif
db965e00e32a191217813eba97d8978887942501covener avec les serveurs d'arrière-plan, et il est possible de passer outre
db965e00e32a191217813eba97d8978887942501covener si nécessaire. Si le client envoie une requête contenant un en-tête
db965e00e32a191217813eba97d8978887942501covener Cache-Control imposant un nouveau téléchargement de l'entité, tout
db965e00e32a191217813eba97d8978887942501covener verrou éventuel sera ignoré, la requête du client sera honorée
db965e00e32a191217813eba97d8978887942501covener immédiatement, et l'entrée du cache mise à jour.</p>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <p>Comme mécanisme de sécurité supplémentaire, la durée de vie
6b040c2a2a566388097aab66dff8c3c94e853f22slive maximale des verrous est configurable. Lorsque cette limite est
6b040c2a2a566388097aab66dff8c3c94e853f22slive atteinte, le verrou est supprimé et une autre requête peut alors en
6b040c2a2a566388097aab66dff8c3c94e853f22slive créer un nouveau. Cette durée de vie peut être définie via la
cee399b097f61ab31c81399957f1293b55e1a984nd directive <directive>CacheLockMaxAge</directive>, et sa valeur par
cee399b097f61ab31c81399957f1293b55e1a984nd défaut est de 5 secondes.
6b040c2a2a566388097aab66dff8c3c94e853f22slive <example><title>Activation du verrouillage du cache</title>
6b040c2a2a566388097aab66dff8c3c94e853f22slive # Active le verrouillage du cache<br />
6b040c2a2a566388097aab66dff8c3c94e853f22slive CacheLock on<br />
6b040c2a2a566388097aab66dff8c3c94e853f22slive CacheLockMaxAge 5<br />
6b040c2a2a566388097aab66dff8c3c94e853f22slive </IfModule>
6b040c2a2a566388097aab66dff8c3c94e853f22slive<section id="finecontrol"><title>Contrôle fin via le filtre CACHE</title>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <p>Dans son mode de fonctionnement par défaut, le cache s'exécute sous
6b040c2a2a566388097aab66dff8c3c94e853f22slive la forme d'un gestionnaire rapide, court-circuitant la majorité des
6b040c2a2a566388097aab66dff8c3c94e853f22slive traitements du serveur et fournissant ainsi une mise en cache
6b040c2a2a566388097aab66dff8c3c94e853f22slive possédant les plus hautes performances disponibles.</p>
cee399b097f61ab31c81399957f1293b55e1a984nd <p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
6b040c2a2a566388097aab66dff8c3c94e853f22slive serveur, comme si un mandataire de mise en cache indépendant RFC2616
6b040c2a2a566388097aab66dff8c3c94e853f22slive était placé devant ce dernier.</p>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <p>Bien que que ce mode offre les meilleures performances, les
6b040c2a2a566388097aab66dff8c3c94e853f22slive administrateurs peuvent souhaiter, dans certaines circonstances,
cee399b097f61ab31c81399957f1293b55e1a984nd effectuer des traitements sur la requête après que cette dernière ait
cee399b097f61ab31c81399957f1293b55e1a984nd été mise en cache, comme ajouter du contenu personnalisé à la page
cee399b097f61ab31c81399957f1293b55e1a984nd mise en cache, ou appliquer des restrictions d'autorisations au
cee399b097f61ab31c81399957f1293b55e1a984nd contenu. Pour y parvenir, l'administrateur sera alors souvent forcé de
dac9980d05f87d3ebdb3d2dde673a0f24dfcf248covener placer des serveurs mandataires inverses indépendants soit derrière,
5b34403770a5a65a807ab969af707902d93929e4covener soit devant le serveur de mise en cache.</p>
dac9980d05f87d3ebdb3d2dde673a0f24dfcf248covener <p>Pour résoudre ce problème, la directive <directive
29a85d70ade6f1d222578f987738ea4dea415eabcovener module="mod_cache">CacheQuickHandler</directive> peut être définie à
dac9980d05f87d3ebdb3d2dde673a0f24dfcf248covener <strong>off</strong>, afin que le serveur traite toutes les phases
dac9980d05f87d3ebdb3d2dde673a0f24dfcf248covener normalement exécutées par une requête non mise en cache, y compris les
dac9980d05f87d3ebdb3d2dde673a0f24dfcf248covener phases <strong>d'authentification et d'autorisation</strong>.</p>
6b040c2a2a566388097aab66dff8c3c94e853f22slive <p>En outre, l'administrateur peut éventuellement spécifier le
6b040c2a2a566388097aab66dff8c3c94e853f22slive <strong>point précis dans la chaîne de filtrage</strong> où devra
6b040c2a2a566388097aab66dff8c3c94e853f22slive intervenir la mise en cache en ajoutant le filtre
7db9f691a00ead175b03335457ca296a33ddf31bnd <strong>CACHE</strong> à la chaîne de filtrage en sortie.</p>
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é
partir du cache si la ressource d'arrière-plan n'a pas été modifiée.</p>
tempêtes de requêtes dans le répertoire temp par défaut du système est