home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / apache_2.2.8-win32-x86-no_ssl.msi / Data1.cab / _629C45B6FF6415E5E5FA8D1B5BE3821A < prev    next >
Extensible Markup Language  |  2007-10-28  |  45KB  |  741 lines

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
  4.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  5.               This file is generated from xml source: DO NOT EDIT
  6.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  7.       -->
  8. <title>Guide de la mise en cache - Serveur Apache HTTP</title>
  9. <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
  10. <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
  11. <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
  12. <link href="./images/favicon.ico" rel="shortcut icon" /></head>
  13. <body id="manual-page"><div id="page-header">
  14. <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
  15. <p class="apache">Serveur Apache HTTP Version 2.2</p>
  16. <img alt="" src="./images/feather.gif" /></div>
  17. <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
  18. <div id="path">
  19. <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.2</a></div><div id="page-content"><div id="preamble"><h1>Guide de la mise en cache</h1>
  20. <div class="toplang">
  21. <p><span>Langues Disponibles: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English"> en </a> |
  22. <a href="./fr/caching.html" title="Franτais"> fr </a></p>
  23. </div>
  24.  
  25.     <p>Ce document complΦte la documentation de rΘfΘrence des modules
  26.     <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>,
  27.     <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>, <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code>,
  28.     <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> et du programme <a href="programs/htcacheclean.html">htcacheclean</a>.
  29.     Il dΘcrit l'utilisation des fonctionnalitΘs de mise en cache d'Apache
  30.     pour accΘlΘrer les services web et proxy, tout en Θvitant les problΦmes
  31.     courants et les erreurs de configuration.</p>
  32.   </div>
  33. <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Introduction</a></li>
  34. <li><img alt="" src="./images/down.gif" /> <a href="#overview">Vue d'ensemble de la mise en cache</a></li>
  35. <li><img alt="" src="./images/down.gif" /> <a href="#security">ConsidΘrations sur la sΘcuritΘ</a></li>
  36. <li><img alt="" src="./images/down.gif" /> <a href="#filehandle">Mise en cache de la gestion de fichier</a></li>
  37. <li><img alt="" src="./images/down.gif" /> <a href="#inmemory">Mise en cache en mΘmoire</a></li>
  38. <li><img alt="" src="./images/down.gif" /> <a href="#disk">Mise en cache sur disque</a></li>
  39. </ul></div>
  40. <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  41. <div class="section">
  42. <h2><a name="introduction" id="introduction">Introduction</a></h2>
  43.     
  44.  
  45.     <p>Depuis la version 2.2 du serveur HTTP Apache, les modules
  46.     <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
  47.     et <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> ne sont plus jugΘs expΘrimentaux
  48.     et on considΦre qu'ils peuvent Ωtre utilisΘs en production. Ces
  49.     architectures de mise en cache constituent un puissant concept
  50.     d'accΘlΘration de la gestion HTTP, tant comme serveur web originel
  51.     que comme mandataire.</p>
  52.  
  53.     <p>Le module <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> et ses modules de soutien
  54.     <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> et <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>
  55.     permettent une mise en cache intelligente du point de vue HTTP.
  56.     Le contenu proprement dit est stockΘ dans le cache,
  57.     et mod_cache tente d'honorer tous les en-tΩtes HTTP et les options
  58.     qui dΘfinissent la possibilitΘ de mise en cache du contenu. Il gΦre non
  59.     seulement le contenu local, mais aussi le contenu mandatΘ.
  60.     <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
  61.     est conτu pour des configurations de mise en cache simples ou complexes,
  62.     dans lesquels vous traitez de contenu mandatΘ, de contenu local dynamique
  63.     ou avez besoin d'accΘlΘrer l'accΦs α des fichiers locaux qui sont modifiΘs
  64.     au cours du temps.</p>
  65.  
  66.     <p>Le module <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> quant α lui, constitue une
  67.     forme de mise en cache plus basique, mais quelques fois intΘressante.
  68.     Plut├┤t que de gΘrer la complexitΘ de s'assurer de maniΦre active de la
  69.     possibilitΘ de mise en cache d'URLs,
  70.     <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> fournit des mΘthodes pour la gestion
  71.     et l'Θdition de fichiers en mΘmoire afin de maintenir un cache de fichiers
  72.     dans l'Θtat o∙ ils Θtaient la derniΦre fois qu'Apache a dΘmarrΘ.
  73.     En tant que tel, <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> a ΘtΘ conτu pour amΘliorer
  74.     le temps d'accΦs α des fichiers locaux statiques qui ne sont modifiΘs
  75.     que rarement.</p>
  76.  
  77.     <p>Etant donnΘ que <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> constitue une
  78.     implΘmentation de mise en cache relativement simple, mises α part les
  79.     sections spΘcifiques sur les directives <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> et <code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code>, les explications fournies
  80.     dans ce guide concernent l'architecture de mise en cache du
  81.     module <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>.</p>
  82.  
  83.     <p>Pour tirer parti efficacement de ce document, les bases de HTTP doivent
  84.     vous Ωtre familiΦres, et vous devez avoir lu les sections
  85.     <a href="urlmapping.html">Mise en correspondance des
  86.     URLs avec le systΦme de fichiers</a> et
  87.     <a href="content-negotiation.html">NΘgociation sur le contenu</a>
  88.     du guide de l'utilisateur.</p>
  89.  
  90.   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  91. <div class="section">
  92. <h2><a name="overview" id="overview">Vue d'ensemble de la mise en cache</a></h2>
  93.  
  94.     
  95.  
  96.     <table class="related"><tr><th>Modules ApparentΘs</th><th>Directives ApparentΘes</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></li><li><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code></li><li><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code></li><li><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code></li><li><code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code></li><li><code class="directive"><a href="./mod/mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></code></li></ul></td></tr></table>
  97.  
  98.     <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> peut faire intervenir deux phases
  99.     principales pendant la durΘe de vie d'une requΩte.
  100.     En premier lieu, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
  101.     est un module de mise en correspondance d'URLs, ce qui signifie que si
  102.     une URL a ΘtΘ mise en cache, et que la version du cache de cette URL n'est
  103.     pas arrivΘe α expiration, la requΩte sera traitΘe directement par
  104.     <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>.</p>
  105.  
  106.     <p>Ceci entraεne que toutes autres actions qui se dΘrouleraient normalement
  107.     au cours du processus de traitement d'une requΩte -- par exemple un
  108.     traitement effectuΘ par <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>, ou
  109.     <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> --
  110.     ne seront pas effectuΘes. Mais c'est justement l'intΘrΩt
  111.     de la mise en cache prΘalable du contenu.</p>
  112.  
  113.     <p>Si l'URL ne se trouve pas dans le cache, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
  114.     va ajouter un <a href="filter.html">filtre</a> au traitement de la requΩte.
  115.     Une fois le contenu de la rΘponse HTTP trouvΘ par Apache de maniΦre classique, le
  116.     filtre sera exΘcutΘ en mΩme temps que le contenu sera transmis au client.
  117.     S'il est dΘterminΘ que le contenu peut Ωtre mis en cache,
  118.     il sera sauvegardΘ dans le cache pour une utilisation future.</p>
  119.  
  120.     <p>Si l'URL se trouve dans le cache, mais est arrivΘe α expiration,
  121.     le filtre est quand-mΩme ajoutΘ, mais <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> va crΘer
  122.     une requΩte conditionnelle en arriΦre-plan, pour dΘterminer si la version
  123.     du cache est encore α jour. Si la version du cache est encore α jour, ses
  124.     meta-informations seront mises α jour et la requΩte sera servie α partir du
  125.     cache. Si la version du contenu n'est plus α jour, elle sera supprimΘe et le
  126.     filtre va sauvegarder le contenu mis α jour dans le cache
  127.     au moment o∙ il sera servi.</p>
  128.  
  129.     <h3>AmΘlioration du taux de prΘsence dans le cache</h3>
  130.       
  131.  
  132.       <p>Lors de la mise en cache de contenu gΘnΘrΘ localement, le
  133.       positionnement de la directive
  134.       <code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code> α
  135.       <code>On</code> peut amΘliorer de maniΦre spectaculaire le taux de
  136.       prΘsence dans le cache. Ceci est du au fait que le nom d'h├┤te de l'h├┤te
  137.       virtuel qui sert le contenu constitue une partie de la clΘ de cache.
  138.       Avec <code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code> positionnΘe
  139.       α <code>On</code>,
  140.       les h├┤tes virtuels possΘdant plusieurs noms de serveur ou alias ne
  141.       gΘnΘreront pas d'entitΘs de cache diffΘrentes, et le contenu sera mis en
  142.       cache en faisant rΘfΘrence au nom d'h├┤te canonique.</p>
  143.  
  144.       <p>Les documents mis en cache ne seront servis qu'en rΘponse α des
  145.       requΩtes de type URL, car la mise en cache est effectuΘe lors de la phase
  146.       de traduction de l'URL en nom de fichier.
  147.       En gΘnΘral, cela n'a que peu d'effet, α moins que vous n'utilisiez les
  148.       <a href="howto/ssi.html">Inclusions C├┤tΘ Serveur (SSI)</a>;</p>
  149.  
  150.       <div class="example"><pre>
  151. <!-- L'inclusion suivante peut Ωtre mise en cache -->
  152. <!--#include virtual="/footer.html" -->
  153.  
  154. <!-- L'inclusion suivante ne peut pas Ωtre mise en cache -->
  155. <!--#include file="/path/to/footer.html" --></pre></div>
  156.  
  157.       <p>Si vous utilisez les SSI, et voulez bΘnΘficier de la vitesse de
  158.       service depuis le cache, vous devez utiliser des inclusions de type
  159.       <code>virtual</code>.</p>
  160.     
  161.  
  162.     <h3>PΘriodes d'expiration</h3>
  163.       
  164.  
  165.       <p>La pΘriode d'expiration par dΘfaut pour les entitΘs du cache est
  166.       d'une heure; elle peut cependant Ωtre facilement modifiΘe α l'aide de
  167.       la directive <code class="directive"><a href="./mod/mod_cache.html#cachedefaultexpire">CacheDefaultExpire</a></code>. Cette valeur par
  168.       dΘfaut n'est utilisΘe que lorsque la source originale du contenu ne
  169.       prΘcise pas de pΘriode d'expiration ou d'heure de derniΦre
  170.       modification.</p>
  171.  
  172.       <p>Si une rΘponse ne contient pas d'en-tΩte <code>Expires</code> mais
  173.       inclut un en-tΩte <code>Last-Modified</code>, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>
  174.       peut dΘduire une pΘriode d'expiration en se basant sur la valeur de la
  175.       directive <code class="directive"><a href="./mod/mod_cache.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></code>.</p>
  176.  
  177.       <p>La pΘriode d'expiration des contenus locaux peut Ωtre ajustΘe finement
  178.       en utilisant le module <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code>.</p>
  179.  
  180.       <p>On peut aussi contr├┤ler la pΘriode d'expiration maximale en utilisant
  181.       la directive <code class="directive"><a href="./mod/mod_cache.html#cachemaxexpire">CacheMaxExpire</a></code>.</p>
  182.  
  183.     
  184.  
  185.     <h3>Guide succinct des requΩtes conditionnelles</h3>
  186.       
  187.  
  188.       <p>Lorsqu'un contenu est arrivΘ α expiration dans le cache et fait
  189.       l'objet d'une nouvelle demande d'accΦs, plut├┤t que traiter directement
  190.       la requΩte originale, Apache prΘfΦre utiliser une
  191.       requΩte conditionnelle.</p>
  192.  
  193.       <p>HTTP propose toute une panoplie d'en-tΩtes qui permettent α un client,
  194.       ou au cache de distinguer les diffΘrentes versions d'un mΩme contenu. Par
  195.       exemple, si une ressource a ΘtΘ servie avec un en-tΩte "Etag:", il est
  196.       possible de crΘer une requΩte conditionnelle contenant un en-tΩte
  197.       "If-None-Match:". Si une ressource a ΘtΘ servie avec un en-tΩte
  198.       "Last-Modified:", il est possible de crΘer une requΩte conditionnelle
  199.       contenant un en-tΩte "If-Modified-Since:", etc....</p>
  200.  
  201.       <p>Lorsqu'une telle requΩte conditionnelle est crΘΘe, la reponse diffΦre
  202.       selon que le contenu satisfait ou non aux conditions. Si une requΩte est
  203.       crΘΘe avec un en-tΩte "If-Modified-Since:", et le contenu n'a pas ΘtΘ
  204.       modifiΘ depuis le moment indiquΘ dans la requΩte, alors un laconique
  205.       "304 Not Modified" est retournΘ.</p>
  206.  
  207.       <p>Si le contenu a ΘtΘ modifiΘ, il est servi comme si la requΩte n'avait
  208.       pas ΘtΘ conditionnelle α l'origine.</p>
  209.  
  210.       <p>Les bΘnΘfices des requΩtes conditionnelles pour ce qui concerne la
  211.       mise en cache sont de deux sortes. PremiΦrement, quand une telle requΩte
  212.       est envoyΘe au processus en arriΦre-plan, il sera aisΘ de dΘterminer
  213.       si le contenu que devra servir le processus en arriΦre-plan correspond
  214.       au contenu stockΘ dans le cache, sans Ωtre obligΘ de transmettre la
  215.       totalitΘ de la ressource.</p>
  216.  
  217.       <p>DeuxiΦmement, les requΩtes conditionnelles sont en gΘnΘral moins
  218.       co√teuses en ressources pour le processus en arriΦre-plan.
  219.       Pour ce qui est des fichiers
  220.       statiques, l'action type est un appel α <code>stat()</code> ou un appel
  221.       systΦme similaire, pour dΘterminer si la taille du fichier ou sa date de
  222.       modification ont changΘ. Ainsi, mΩme si Apache met en cache le contenu
  223.       local, un contenu arrivΘ α expiration pourra Ωtre servi plus rapidement
  224.       depuis le cache s'il n'a pas ΘtΘ modifiΘ, parce que la lecture depuis le
  225.       cache est plus rapide que la lecture depuis le processus en arriΦre-plan
  226.       (α comparer α la diffΘrence de vitesse entre la lecture depuis un cache en
  227.       mΘmoire et la lecture depuis un disque).</p>
  228.     
  229.  
  230.     <h3>Que peut-on mettre en cache ?</h3>
  231.       
  232.  
  233.       <p>Comme mentionnΘ plus haut, les deux styles de mise en cache d'Apache
  234.       fonctionnent diffΘremment; la mise en cache de
  235.       <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> conserve les contenus des fichiers
  236.       tels qu'ils Θtaient au dΘmarrage d'Apache. Quand une requΩte pour un
  237.       fichier mis en cache par ce module est envoyΘe, elle est interceptΘe
  238.       et le fichier mis en cache est servi.</p>
  239.  
  240.       <p>La mise en cache de <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, quant α elle, est
  241.       plus complexe. Lors du traitement d'une requΩte, le module de mise en
  242.       cache dΘterminera si le contenu peut Ωtre mis en cache, s'il ne l'a
  243.       pas dΘjα ΘtΘ auparavant. Les conditions qui permettent de dΘterminer
  244.       la possibilitΘ de mise en cache d'une rΘponse sont :</p>
  245.  
  246.       <ol>
  247.         <li>La mise en cache doit Ωtre activΘe pour cette URL. Voir les
  248.     directives <code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code> et <code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code>.</li>
  249.  
  250.         <li>La reponse doit avoir un code de statut HTTP de 200, 203, 300, 301
  251.     ou 410.</li>
  252.  
  253.         <li>La requΩte doit Ωtre de type HTTP GET.</li>
  254.  
  255.         <li>Si la requΩte contient un en-tΩte "Authorization:", la rΘponse ne
  256.     sera pas mise en cache.</li>
  257.  
  258.         <li>Si la rΘponse contient un en-tΩte "Authorization:", elle doit aussi
  259.     contenir une option "s-maxage", "must-revalidate" ou "public"
  260.     dans l'en-tΩte "Cache-Control:".</li>
  261.  
  262.         <li>Si l'URL contenait une requΩte sous forme de chaεne de caractΦres
  263.     (provenant par exemple d'une mΘthode GET de formulaire HTML), elle ne
  264.     sera pas mise en cache α moins que la rΘponse ne contienne un en-tΩte
  265.         "Expires:", comme prΘcisΘ dans la RFC2616 section 13.9.</li>
  266.  
  267.         <li>Si la rΘponse a un statut de 200 (OK), elle doit aussi contenir
  268.     au moins un des en-tΩtes "Etag", "Last-Modified" ou
  269.         "Expires", α moins que la directive
  270.         <code class="directive"><a href="./mod/mod_cache.html#cacheignorenolastmod">CacheIgnoreNoLastMod</a></code>
  271.         ne prΘcise d'autres contraintes.</li>
  272.  
  273.         <li>Si la rΘponse contient l'option "private" dans un en-tΩte
  274.     "Cache-Control:", elle ne sera pas mise en cache α moins que la
  275.     directive
  276.         <code class="directive"><a href="./mod/mod_cache.html#cachestoreprivate">CacheStorePrivate</a></code>
  277.     ne prΘcise d'autres contraintes.</li>
  278.  
  279.         <li>De mΩme, si la rΘponse contient l'option "no-store" dans un en-tΩte
  280.         "Cache-Control:", elle ne sera pas mise en cache α moins que la
  281.     directive
  282.         <code class="directive"><a href="./mod/mod_cache.html#cachestorenostore">CacheStoreNoStore</a></code>
  283.     n'ait ΘtΘ utilisΘe.</li>
  284.  
  285.         <li>Une rΘponse ne sera pas mise en cache si elle comporte un en-tΩte
  286.     "Vary:" contenant le caractΦre "*" qui correspond α toute
  287.     chaεne de caractΦres.</li>
  288.       </ol>
  289.     
  290.  
  291.     <h3>Qu'est ce qui ne doit pas Ωtre mis en cache ?</h3>
  292.       
  293.  
  294.       <p>En bref, tout contenu qui varie beaucoup avec le temps, ou en fonction
  295.       de particularitΘs de la requΩte qui ne sont pas couvertes par la
  296.       nΘgociation HTTP, ne doit pas Ωtre mis en cache.</p>
  297.  
  298.       <p>Un contenu dynamique qui varie en fonction de l'adresse IP du
  299.       demandeur, ou qui est modifiΘ toutes les 5 minutes, ne devra en gΘnΘral
  300.       pas Ωtre mis en cache.</p>
  301.  
  302.       <p>Si par contre le contenu servi diffΦre en fonction de la valeur de
  303.       divers en-tΩtes HTTP, il se peut que l'on puisse le mettre en cache
  304.       intelligemment en utilisant un en-tΩte "Vary".</p>
  305.     
  306.  
  307.     <h3>Contenu variable et/ou nΘgociΘ</h3>
  308.       
  309.  
  310.       <p>Si <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> reτoit une rΘponse contenant un en-tΩte
  311.       "Vary", lorsqu'un contenu a ΘtΘ demandΘ par un processus d'arriΦre-plan,
  312.       il va s'efforcer de la traiter intelligemment. Si possible,
  313.       <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> va dΘtecter les en-tΩtes attribuΘs dans la
  314.       rΘponse "Vary" α l'occasion des futures demandes, et servir une rΘponse
  315.       correcte α partir du cache.</p>
  316.  
  317.       <p>Si par exemple, une rΘponse est reτue avec l'en-tΩte Vary suivant,</p>
  318.  
  319.       <div class="example"><p><code>
  320. Vary: negotiate,accept-language,accept-charset
  321.       </code></p></div>
  322.  
  323.       <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> ne servira aux demandeurs que le contenu
  324.       mis en cache qui correspond au contenu des en-tΩtes accept-language et
  325.       accept-charset de la requΩte originale.</p>
  326.     
  327.  
  328.   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  329. <div class="section">
  330. <h2><a name="security" id="security">ConsidΘrations sur la sΘcuritΘ</a></h2>
  331.     
  332.  
  333.     <h3>Autorisation et contr├┤le d'accΦs</h3>
  334.       
  335.  
  336.       <p>Utiliser <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> revient sensiblement α la mΩme
  337.       chose qu'avoir un mandataire inverse intΘgrΘ (reverse-proxy). Les requΩtes
  338.       seront servies par le module de mise en cache sauf si ce dernier
  339.       dΘtermine qu'un processus d'arriΦre-plan doit Ωtre appelΘ. La mise en
  340.       cache de ressources locales modifie considΘrablement le modΦle de
  341.       sΘcuritΘ d'Apache.</p>
  342.  
  343.       <p>Comme le parcours de la hiΘrarchie d'un systΦme de fichiers pour
  344.       examiner le contenu d'Θventuels fichiers
  345.       <code>.htaccess</code> serait une opΘration trΦs co√teuse en ressources,
  346.       annulant partiellement de ce fait l'intΘrΩt de la mise en cache
  347.       (accΘlΘrer le traitement des requΩtes),
  348.       <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> ne se prΘoccupe pas de savoir s'il a
  349.       l'autorisation de servir une entitΘ mise en cache. En d'autres termes,
  350.       si <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> a mis en cache un certain contenu, ce
  351.       dernier sera servi α partir du cache tant qu'il ne sera pas arrivΘ α
  352.       expiration.</p>
  353.  
  354.       <p>Si par exemple, votre configuration autorise l'accΦs α une ressource
  355.       en fonction de l'adresse IP, vous devez vous assurer que ce contenu n'est
  356.       pas mis en cache. Ceci est possible en utilisant la directive
  357.       <code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code>, ou le module
  358.       <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code>. LivrΘ α lui-mΩme,
  359.       <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> - pratiquement comme un mandataire inverse -
  360.       mettrait en cache le contenu lors de son service, et le servirait ensuite
  361.       α tout client, vers n'importe quelle adresse IP.</p>
  362.     
  363.  
  364.     <h3>Piratages locaux</h3>
  365.       
  366.  
  367.       <p>Etant donnΘ que les requΩtes des utilisateurs finaux peuvent Ωtre
  368.       servies depuis le cache, ce dernier est une cible potentielle pour ceux
  369.       qui veulent dΘfigurer un contenu ou interfΘrer avec lui. Il est important
  370.       de garder α l'esprit que l'utilisateur sous lequel tourne Apache doit
  371.       toujours avoir l'accΦs en Θcriture dans le cache. Ceci est en contraste
  372.       total avec la recommandation usuelle d'interdire α l'utilisateur sous
  373.       lequel tourne Apache
  374.       l'accΦs en Θcriture α tout contenu.</p>
  375.  
  376.       <p>Si l'utilisateur sous lequel tourne Apache est compromis,
  377.       par exemple α cause d'une
  378.       faille de sΘcuritΘ dans un processus CGI, il est possible que le cache
  379.       fasse l'objet d'une attaque. Il est relativement aisΘ d'insΘrer ou de
  380.       modifier une entitΘ dans le cache en utilisant le module
  381.       <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>.</p>
  382.  
  383.       <p>Cela reprΘsente un risque relativement ΘlΘvΘ par rapport aux autres
  384.       types d'attaques qu'il est possible de mener sous l'utilisateur apache.
  385.       Si vous utilisez <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>, vous devez garder ceci
  386.       α l'esprit : effectuez toujours les mises α jour d'Apache quand des
  387.       correctifs de sΘcuritΘ sont annoncΘs et exΘcutez les processus CGI sous
  388.       un utilisateur autre qu'apache en utilisant
  389.       <a href="suexec.html">suEXEC</a> dans la mesure du possible.</p>
  390.  
  391.     
  392.  
  393.     <h3>Empoisonnement du cache (Cache Poisoning)</h3>
  394.       
  395.  
  396.       <p>Si vous utilisez Apache comme serveur mandataire avec mise en cache,
  397.       vous vous exposez aussi α un Θventuel "Empoisonnement du
  398.       cache" (Cache poisoning). L'empoisonnement du cache est un terme gΘnΘral
  399.       pour dΘsigner les attaques au cours desquelles l'attaquant fait en sorte
  400.       que le serveur mandataire renvoie un contenu incorrect (et souvent
  401.       indΘsirable) en provenance du serveur d'arriΦre plan.
  402.       </p>
  403.  
  404.       <p>Par exemple, si les serveur DNS qu'utilise votre systΦme o∙ tourne
  405.       Apache sont vulnΘrables α l'empoisonnement du cache des DNS, un attaquant
  406.       pourra contr├┤ler vers o∙ Apache se connecte lorsqu'il demande un contenu
  407.       depuis le serveur d'origine.
  408.       Un autre exemple est constituΘ par les attaques ainsi nommΘes
  409.       "Dissimulation de requΩtes HTTP" (HTTP request-smuggling).</p>
  410.  
  411.       <p>Ce document n'est pas le bon endroit pour une discussion approfondie
  412.       α propos de la Dissimulation de requΩtes HTTP (utilisez plut├┤t votre
  413.       moteur de recherche favori); il est cependant important de savoir qu'il
  414.       est possible d'Θlaborer une sΘrie de requΩtes, et d'exploiter une
  415.       vulnΘrabilitΘ d'un serveur web d'origine de telle faτon que l'attaquant
  416.       puisse contr├┤ler entiΦrement le contenu renvoyΘ par le mandataire.</p>
  417.     
  418.   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  419. <div class="section">
  420. <h2><a name="filehandle" id="filehandle">Mise en cache de la gestion de fichier</a></h2>
  421.     
  422.  
  423.     <table class="related"><tr><th>Modules ApparentΘs</th><th>Directives ApparentΘes</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></li><li><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li></ul></td></tr></table>
  424.  
  425.     <p>Le fait d'ouvrir un fichier peut en lui-mΩme introduire un dΘlai,
  426.     en particulier dans les systΦmes de fichiers rΘpartis sur le rΘseau. Apache
  427.     peut s'affranchir de ce dΘlai en maintenant
  428.     un cache des descripteurs de fichiers
  429.     ouverts pour ce qui concerne les fichiers souvent accΘdΘs. Apache propose
  430.     actuellement deux implΘmentations diffΘrentes de mise en cache de la
  431.     gestion de fichier.</p>
  432.  
  433.     <h3>Directive CacheFile</h3>
  434.       
  435.  
  436.       <p>La forme la plus ΘlΘmentaire de mise en cache que propose Apache est
  437.       fournie par le module <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code>.
  438.       Plut├┤t que de mettre en cache le contenu des fichiers, ce cache maintient
  439.       une table des descripteurs de fichiers ouverts. Les fichiers α mettre en
  440.       cache de cette maniΦre sont spΘcifiΘs dans le fichier de configuration
  441.       en utilisant la directive
  442.       <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code>.</p>
  443.  
  444.       <p>La directive
  445.       <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> demande α Apache
  446.       d'ouvrir le fichier lors de son dΘmarrage et de rΘutiliser le descripteur
  447.       de fichier ΘlaborΘ α cette occasion pour tous les
  448.       accΦs ultΘrieurs α ce fichier.</p>
  449.  
  450.       <div class="example"><pre>CacheFile /usr/local/apache2/htdocs/index.html</pre></div>
  451.  
  452.       <p>Si vous avez l'intention de mettre en cache un grand nombre de
  453.       fichiers de cette maniΦre, vous devez vous assurer que le nombre maximum
  454.       de fichiers ouverts par votre systΦme d'exploitation est correctement
  455.       dΘfini.</p>
  456.  
  457.       <p>Bien que l'utilisation de la directive
  458.       <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code>
  459.       n'entraεne pas la mise en cache du contenu du fichier, cela ne signifie
  460.       pas qu'en cas de modification du fichier pendant l'exΘcution d'Apache,
  461.       ces changements seront pris en compte. Le fichier sera toujours servi
  462.       dans l'Θtat o∙ il Θtait quand Apache a dΘmarrΘ.</p>
  463.  
  464.       <p>Si le fichier est supprimΘ pendant l'exΘcution d'Apache, ce dernier
  465.       continuera α maintenir un descripteur de fichier ouvert et α servir le
  466.       fichier dans l'Θtat o∙ il Θtait quand Apache a dΘmarrΘ. Cela signifie
  467.       aussi habituellement que malgrΘ le fait que le fichier ait ΘtΘ supprimΘ,
  468.       et ne soit
  469.       plus accessible par le systΦme de fichiers, l'espace libΘrΘ ne sera
  470.       restituΘ qu'α l'arrΩt d'Apache quand le
  471.       descripteur de fichier sera fermΘ.</p>
  472.     
  473.  
  474.     <h3>Directive CacheEnable</h3>
  475.       
  476.  
  477.       <p>Le module <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> propose aussi son propre
  478.       schΘma de mise en cache de la gestion de fichier, qui peut Ωtre activΘ
  479.       α l'aide de la directive
  480.       <code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code>.</p>
  481.  
  482.       <div class="example"><pre>CacheEnable fd /</pre></div>
  483.  
  484.       <p>A l'instar de tout ce qui concerne le module
  485.       <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, ce mode de mise en cache de la gestion de
  486.       fichier est intelligent, et les descripteurs ne seront plus maintenus
  487.       lorsque le contenu mis en cache sera arrivΘ α expiration.</p>
  488.     
  489.   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  490. <div class="section">
  491. <h2><a name="inmemory" id="inmemory">Mise en cache en mΘmoire</a></h2>
  492.     
  493.  
  494.      <table class="related"><tr><th>Modules ApparentΘs</th><th>Directives ApparentΘes</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code></li><li><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code></li></ul></td></tr></table>
  495.  
  496.     <p>Servir un contenu directement depuis la mΘmoire systΦme est
  497.     universellement reconnu comme la mΘthode la plus rapide. Lire des fichiers
  498.     depuis un contr├┤leur de disque ou pire, depuis un rΘseau distant est plus
  499.     lent de plusieurs ordres de grandeur. Les contr├┤leurs de disque rΘalisent
  500.     en gΘnΘral des opΘrations mΘcaniques, et l'accΦs au rΘseau est limitΘ par la
  501.     bande passante dont vous disposez. Par contre, les temps d'accΦs α la
  502.     mΘmoire sont de l'ordre de la nano-seconde.</p>
  503.  
  504.     <p>Cependant la mΘmoire systΦme n'est pas bon marchΘ; α capacitΘ Θgale,
  505.     c'est de loin le type de stockage le plus co√teux et il est important de
  506.     s'assurer qu'elle est utilisΘe efficacement. Le fait de mettre en cache
  507.     des fichiers en mΘmoire diminue d'autant la quantitΘ de mΘmoire systΦme
  508.     disponible. Comme nous le verrons plus loin, ce n'est pas un problΦme en
  509.     soi dans le cas de la mise en cache par l'intermΘdiaire du systΦme
  510.     d'exploitation, mais si l'on utilise la mise en cache en mΘmoire propre α
  511.     Apache, il faut prendre garde α ne pas allouer trop de mΘmoire au cache.
  512.     Sinon le systΦme sera contraint d'utiliser le swap, ce qui dΘgradera
  513.     sensiblement les performances.</p>
  514.  
  515.     <h3>Mise en cache par l'intermΘdiaire du systΦme d'exploitation</h3>
  516.       
  517.  
  518.       <p>Dans la plupart des systΦmes d'exploitation modernes, c'est le noyau
  519.       qui gΦre directement la mise en cache en mΘmoire des donnΘes relatives
  520.       aux fichiers. C'est une fonctionnalitΘ puissante, et les systΦmes
  521.       d'exploitation s'en acquittent fort bien pour la plus grande partie.
  522.       ConsidΘrons par exemple, dans le cas de Linux, la diffΘrence entre le
  523.       temps nΘcessaire α la premiΦre lecture d'un fichier et le temps
  524.       nΘcessaire α sa deuxiΦme lecture;</p>
  525.  
  526.       <div class="example"><pre>
  527. colm@coroebus:~$ time cat testfile > /dev/null
  528. real    0m0.065s
  529. user    0m0.000s
  530. sys     0m0.001s
  531. colm@coroebus:~$ time cat testfile > /dev/null
  532. real    0m0.003s
  533. user    0m0.003s
  534. sys     0m0.000s</pre></div>
  535.  
  536.       <p>MΩme pour ce petit fichier, il y a une grande diffΘrence entre les
  537.       temps nΘcessaires pour lire le fichier. Ceci est du au fait que le
  538.       noyau a mis en cache le contenu du fichier en mΘmoire.</p>
  539.  
  540.       <p>Du fait de toujours pouvoir disposer de mΘmoire systΦme, vous pouvez
  541.       Ωtre assurΘ qu'il y aura de plus en plus de contenus de fichiers stockΘs
  542.       dans ce cache. Ceci peut s'avΘrer une mΘthode de mise en cache en mΘmoire
  543.       trΦs efficace, et ne nΘcessite aucune configuration supplΘmentaire
  544.       d'Apache.</p>
  545.  
  546.       <p>De plus, comme le systΦme d'exploitation sait si des fichiers
  547.       ont ΘtΘ
  548.       supprimΘs ou modifiΘs, il peut effacer automatiquement des contenus de
  549.       fichiers du cache lorsque cela s'avΦre nΘcessaire. Ceci constitue un gros
  550.       avantage par rapport α la mise en cache en mΘmoire d'Apache qui n'a
  551.       aucune possibilitΘ de savoir si un fichier a ΘtΘ modifiΘ.</p>
  552.     
  553.  
  554.     <p>En dΘpit des performances et des avantages de la mise en cache
  555.     automatique par le systΦme d'exploitation, la mise en cache en mΘmoire
  556.     peut Ωtre effectuΘe plus efficacement par Apache dans certaines
  557.     circonstances.</p>
  558.  
  559.     <p>En premier lieu, un systΦme d'exploitation ne peut mettre en cache que
  560.     les fichiers dont il a connaissance. Si vous exΘcutez Apache en tant que
  561.     serveur mandataire, les fichiers que vous mettez en cache ne sont pas
  562.     stockΘs en local mais sur un serveur distant. Si vous voulez tout de mΩme
  563.     bΘnΘficier de la vitesse incomparable procurΘe par la mise en cache en
  564.     mΘmoire, la mise en cache propre α Apache sera nΘcessaire.</p>
  565.  
  566.     <h3>Mise en cache α l'aide de la directive MMapStatic</h3>
  567.       
  568.  
  569.       <p>La directive <code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code>
  570.       fournie par le module <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> vous permet de
  571.       demander α Apache de charger un contenu de fichier statique en mΘmoire
  572.       lors de son dΘmarrage (α l'aide de l'appel systΦme mmap). Apache
  573.       utilisera le contenu chargΘ en mΘmoire pour satisfaire ultΘrieurement
  574.       toutes les demandes d'accΦs α ce fichier.</p>
  575.  
  576.       <div class="example"><pre>MMapStatic /usr/local/apache2/htdocs/index.html</pre></div>
  577.  
  578.       <p>Comme dans le cas de la directive
  579.       <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code>, toute
  580.       modification du fichier ne sera plus prise en compte par Apache une fois
  581.       ce dernier dΘmarrΘ.</p>
  582.  
  583.       <p> La directive
  584.       <code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code> ne gardant
  585.       pas la trace de la quantitΘ de mΘmoire qu'elle alloue, vous devez prendre
  586.       garde de ne pas en abuser. Chaque processus enfant d'Apache utilisant
  587.       sa propre rΘplique de la mΘmoire allouΘe, il est donc d'une importance
  588.       critique de s'assurer que les fichiers chargΘs ne sont pas d'une taille
  589.       trop importante afin d'Θpargner au systΦme l'utilisation du swap.</p>
  590.     
  591.  
  592.     <h3>Mise en cache α l'aide du module mod_mem_cache</h3>
  593.       
  594.  
  595.       <p>Le module <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> propose une mise en cache en
  596.       mΘmoire intelligente du point de vue du protocole HTTP. Il utilise aussi
  597.       directement le "tas" de la mΘmoire, ce qui signifie que mΩme si
  598.       <var>MMap</var> n'est pas supportΘ par votre systΦme,
  599.       <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> pourra quand-mΩme effectuer
  600.       la mise en cache.</p>
  601.  
  602.       <p>La mise en cache selon cette mΘthode est activΘe comme suit :</p>
  603.  
  604.       <div class="example"><pre>
  605. # Activation de la mise en cache en mΘmoire
  606. CacheEnable mem /
  607.  
  608. # Limite la taille du cache α 1 MΘgaoctet
  609. MCacheSize 1024</pre></div>
  610.     
  611.   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  612. <div class="section">
  613. <h2><a name="disk" id="disk">Mise en cache sur disque</a></h2>
  614.     
  615.  
  616.      <table class="related"><tr><th>Modules ApparentΘs</th><th>Directives ApparentΘes</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li></ul></td></tr></table>
  617.  
  618.     <p>Le module <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> fournit un mΘcanisme de mise
  619.     en cache sur disque au module <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>. Comme dans le cas
  620.     du module <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code>, cette mise en cache est
  621.     intelligente et le contenu ne sera servi qu'α partir du cache tant qu'il
  622.     sera considΘrΘ comme valide.</p>
  623.  
  624.     <p>Typiquement, le module sera configurΘ comme suit :</p>
  625.  
  626.     <div class="example"><pre>
  627. CacheRoot   /var/cache/apache/
  628. CacheEnable disk /
  629. CacheDirLevels 2
  630. CacheDirLength 1</pre></div>
  631.  
  632.     <p>Il est important de savoir que, les fichiers mis en cache Θtant stockΘs
  633.     localement, la mise en cache par l'intermΘdiaire du systΦme d'exploitation
  634.     sera en gΘnΘral aussi appliquΘe α leurs accΦs. Si bien que mΩme si les
  635.     fichiers sont stockΘs sur disque, s'il font l'objet d'accΦs frΘquents,
  636.     il est probable que le systΦme d'exploitation s'appliquera α ce qu'ils
  637.     soient servis α partir de la mΘmoire.</p>
  638.  
  639.     <h3>Comprendre le stockage dans le cache</h3>
  640.       
  641.  
  642.       <p>Pour stocker des entitΘs dans le cache,
  643.       le module <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> crΘe une empreinte (hash) de 22
  644.       caractΦres de l'URL qui a fait l'objet d'une requΩte. Cette empreinte
  645.       comprend le nom d'h├┤te, le protocole, le port, le chemin et tout argument
  646.       de type CGI associΘ α l'URL, afin d'Ωtre sur que plusieurs URLs
  647.       n'interfΦrent pas entre elles.</p>
  648.  
  649.       <p>Chaque position de l'empreinte peut contenir un caractΦre
  650.       choisi parmi 64 caractΦres diffΘrents, il y a donc
  651.       64^22 possibilitΘs pour une empreinte. Par exemple, une URL peut possΘder
  652.       l'empreinte <code>xyTGxSMO2b68mBCykqkp1w</code>. Cette empreinte est
  653.       utilisΘe pour prΘfixer les noms de fichiers spΘcifiques α cette URL α
  654.       l'intΘrieur du cache; cependant, elle est tout d'abord placΘe dans les
  655.       rΘpertoires du cache selon les directives
  656.       <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code> et
  657.       <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code>.</p>
  658.  
  659.       <p>La directive
  660.       <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code>
  661.       dΘfinit le nombre de niveaux de sous-rΘpertoires, et
  662.       <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code>
  663.       le nombre de caractΦres composant le nom des sous-rΘpertoires. Dans
  664.       l'exemple donnΘ plus haut, l'empreinte se trouvera α :
  665.       <code>/var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w</code>.</p>
  666.  
  667.       <p>Cette technique a pour but principal de rΘduire le nombre de
  668.       sous-rΘpertoires ou de fichiers contenus dans un rΘpertoire particulier,
  669.       car le fonctionnement de la plupart des systΦmes de fichiers est ralenti
  670.       quand ce nombre augmente. Avec la valeur "1" pour la directive
  671.       <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code>,
  672.       il peut y avoir au plus 64 sous-rΘpertoires α un niveau quelconque.
  673.       Avec la valeur "2", il peut y en avoir 64 * 64, etc...
  674.       A moins d'avoir une bonne raison pour ne pas le faire, l'utilisation de
  675.       la valeur "1" pour la directive
  676.       <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code>
  677.       est recommandΘe.</p>
  678.  
  679.       <p>Le paramΘtrage de la directive
  680.       <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code>
  681.       dΘpend du nombre de fichiers que vous pensez stocker dans le cache.
  682.       Avec une valeur de "2" comme dans l'exemple donnΘ plus haut,
  683.       4096 sous-rΘpertoires peuvent Ωtre crΘΘs au total. Avec 1 million de
  684.       fichiers dans le cache, cela Θquivaut α environ 245 URLs mises en cache
  685.       dans chaque rΘpertoire.</p>
  686.  
  687.       <p>Chaque URL nΘcessite au moins deux fichiers dans le cache. Ce sont en
  688.       gΘnΘral un fichier ".header", qui contient des meta-informations α propos
  689.       de l'URL, comme la date de son arrivΘe α expiration,
  690.       et un fichier ".data" qui est la copie exacte du contenu α servir.</p>
  691.  
  692.       <p>Dans le cas d'un contenu nΘgociΘ via l'en-tΩte "Vary", un rΘpertoire
  693.       ".vary" sera crΘΘ pour l'URL en question. Ce rΘpertoire contiendra de
  694.       multiples fichiers ".data" correspondant aux diffΘrents contenus
  695.       nΘgociΘs.</p>
  696.     
  697.  
  698.     <h3>Maintenance du cache sur disque</h3>
  699.       
  700.  
  701.       <p>Bien que le module <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> supprime un contenu
  702.       du cache lorsqu'il est arrivΘ α expiration, il ne maintient aucune
  703.       information α propos de la taille totale du cache ou de l'espace restant
  704.       disponible.</p>
  705.  
  706.       <p>Par contre l'utilitaire
  707.       <a href="programs/htcacheclean.html">htcacheclean</a> fourni avec Apache
  708.       vous permet, comme son nom l'indique, de nettoyer le cache pΘriodiquement.
  709.       DΘterminer la frΘquence α laquelle lancer <a href="programs/htcacheclean.html">htcacheclean</a> et la taille souhaitΘe
  710.       pour le cache est une tΓche relativement complexe et il vous faudra de
  711.       nombreux essais et erreurs pour arriver α sΘlectionner des valeurs
  712.       optimales.</p>
  713.  
  714.       <p><a href="programs/htcacheclean.html">htcacheclean</a> opΦre selon deux
  715.       modes. Il peut s'exΘcuter comme dΘmon rΘsident, ou Ωtre lancΘ
  716.       pΘriodiquement par cron. <a href="programs/htcacheclean.html">htcacheclean</a> peut mettre une heure
  717.       ou plus pour traiter de trΦs grands caches (plusieurs dizaines de
  718.       Gigaoctets) et si vous l'exΘcutez α partir de cron, il vous est
  719.       conseillΘ de dΘterminer la durΘe typique d'un traitement, afin d'Θviter
  720.       d'exΘcuter plusieurs instances α la fois.</p>
  721.  
  722.       <p class="figure">
  723.       <img src="images/caching_fig1.gif" alt="" width="600" height="406" /><br />
  724.       <a id="figure1" name="figure1"><dfn>Figure 1</dfn></a>: Croissance
  725.       typique du cache / sΘquence de nettoyage.</p>
  726.  
  727.       <p>Comme <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> ne tient pas compte de l'espace
  728.       utilisΘ dans le cache, vous devez vous assurer que
  729.       <a href="programs/htcacheclean.html">htcacheclean</a> est configurΘ de
  730.       faτon α laisser suffisamment d'"espace de croissance"
  731.       α la suite d'un nettoyage.</p>
  732.     
  733.  
  734.   </div></div>
  735. <div class="bottomlang">
  736. <p><span>Langues Disponibles: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English"> en </a> |
  737. <a href="./fr/caching.html" title="Franτais"> fr </a></p>
  738. </div><div id="footer">
  739. <p class="apache">Copyright 2007 The Apache Software Foundation.<br />AuthorisΘ sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
  740. <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div>
  741. </body></html>