| <!DOCTYPE html SYSTEM "about:legacy-compat"> | |
| <html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
| <meta content="width=device-width, initial-scale=1" name="viewport"> | |
| <!-- | |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | |
| This file is generated from xml source: DO NOT EDIT | |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | |
| --> | |
| <title>mod_file_cache - Serveur HTTP Apache Version 2.5</title> | |
| <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet"> | |
| <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size"> | |
| <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css"> | |
| <script src="../style/scripts/prettify.min.js"> | |
| </script> | |
| <link href="../images/favicon.png" rel="shortcut icon"></head> | |
| <body> | |
| <div id="page-header"> | |
| <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p> | |
| <p class="apache">Serveur HTTP Apache Version 2.5</p> | |
| <img alt="" src="../images/feather.png"></div> | |
| <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div> | |
| <div id="path"> | |
| <a href="https://www.apache.org/">Apache</a> > <a href="https://httpd.apache.org/">Serveur HTTP</a> > <a href="https://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> | |
| <div id="page-content"> | |
| <div id="preamble"><h1>Module Apache mod_file_cache</h1> | |
| <button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button> | |
| <div class="toplang"> | |
| <p><span>Langues Disponibles: </span><a href="../en/mod/mod_file_cache.html" hreflang="en" rel="alternate" title="English"> en </a> | | |
| <a href="../fr/mod/mod_file_cache.html" title="Français"> fr </a> | | |
| <a href="../ko/mod/mod_file_cache.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> | |
| </div> | |
| <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Mise en cache mémoire d'une liste statique de | |
| fichiers</td></tr> | |
| <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr> | |
| <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>file_cache_module</td></tr> | |
| <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_file_cache.c</td></tr></table> | |
| <h3>Sommaire</h3> | |
| <div class="warning"> | |
| Ce module doit être utilisé avec précautions. Il est recommandé de | |
| lire attentivement ce document, car une mauvaise utilisation de | |
| <code class="module"><a href="../mod/mod_file_cache.html">mod_file_cache</a></code> peut facilement conduire à la | |
| création d'un site inopérant. | |
| </div> | |
| <p>La mise en cache de fichiers souvent demandés mais rarement | |
| modifiés est une technique qui peut réduire la charge du | |
| serveur. <code class="module"><a href="../mod/mod_file_cache.html">mod_file_cache</a></code> met en oeuvre deux | |
| techniques de mise en cache de fichiers <em>statiques</em> | |
| fréquemment demandés. Des directives de configuration vous | |
| permettent d'indiquer à <code class="module"><a href="../mod/mod_file_cache.html">mod_file_cache</a></code> soit | |
| d'ouvrir et de charger une image en mémoire d'un fichier avec | |
| <code>mmap()</code>, soit de pré-ouvrir un fichier et de maintenir en | |
| service le <em>gestionnaire</em> du fichier. Chacune de ces techniques | |
| amène à réduire la charge du serveur lors du traitement des | |
| requêtes concernant ces fichiers, en accomplissant une partie du | |
| travail nécessaire à la mise à disposition de ces fichiers (en | |
| particulier les opérations d'entrées/sorties sur les fichiers) au | |
| démarrage du serveur, plutôt qu'au cours de chaque requête.</p> | |
| <p>Note : ces techniques sont inutilisables pour accélérer des | |
| programmes CGI ou d'autres fichiers servis par des gestionnaires de | |
| contenu spéciaux. Elles ne peuvent être utilisées que pour des | |
| fichiers standards en général servis par le gestionnaire de contenu | |
| de base d'Apache.</p> | |
| <p>Ce module est une extension et s'inspire fortement du module | |
| d'Apache 1.3 <code>mod_mmap_static</code>.</p> | |
| </div> | |
| <div id="quickview"><h3>Sujets</h3> | |
| <ul id="topics"> | |
| <li><img alt="" src="../images/down.gif"> <a href="#using">Utilisation de mod_file_cache</a></li> | |
| </ul><h3 class="directives">Directives</h3> | |
| <ul id="toc"> | |
| <li><img alt="" src="../images/down.gif"> <a href="#cachefile">CacheFile</a></li> | |
| <li><img alt="" src="../images/down.gif"> <a href="#mmapfile">MMapFile</a></li> | |
| </ul> | |
| <h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_file_cache">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_file_cache">Signaler un bug</a></li></ul></div> | |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div> | |
| <div class="section"> | |
| <h2 id="using">Utilisation de mod_file_cache <a title="Lien permanent" href="#using" class="permalink">¶</a></h2> | |
| <p><code class="module"><a href="../mod/mod_file_cache.html">mod_file_cache</a></code> gère la mise en cache d'une liste | |
| de fichiers définie de manière statique via une des directives | |
| <code class="directive"><a href="#mmapfile">MMapFile</a></code> ou | |
| <code class="directive"><a href="#cachefile">CacheFile</a></code> au niveau | |
| de la configuration du serveur principal.</p> | |
| <p>Les deux directives ne sont pas supportées par toutes les | |
| plates-formes. Par exemple, Apache pour Windows ne supporte pas | |
| actuellement la directive <code class="directive"><a href="#mmapfile">MMapFile</a></code>, alors que d'autres | |
| plates-formes, comme AIX, supportent les deux. Vous recevrez un | |
| message d'erreur dans le journal des erreurs du serveur si vous | |
| essayez d'utiliser une directive non supportée. Si vous utilisez une | |
| directive non supportée, le serveur démarrera, mais les fichiers ne | |
| seront pas mis en cache. Sur les plates-formes qui supportent les | |
| deux directives, vous devez faire des essais afin de déterminer | |
| quelle directive vous convient le mieux.</p> | |
| <h3>Directive MMapFile</h3> | |
| <p>La directive <code class="directive"><a href="#mmapfile">MMapFile</a></code> du module | |
| <code class="module"><a href="../mod/mod_file_cache.html">mod_file_cache</a></code> permet de transférer en mémoire | |
| une liste statique de fichiers à l'aide de l'appel système | |
| <code>mmap()</code>. Cet appel système est disponible sur la | |
| plupart des plates-formes de style Unix, mais pas sur toutes. Il | |
| existe parfois des limites spécifiques au système quant à la | |
| taille et au nombre de fichiers qui peuvent être | |
| <code>mmap()</code>és, et l'expérimentation est probablement la | |
| méthode la plus simple pour déterminer ces limites.</p> | |
| <p>Ce <code>mmap()</code>age n'est effectué qu'une seul fois au | |
| démarrage ou redémarrage du serveur. Ainsi, chaque fois qu'un des | |
| fichiers chargés en mémoire est modifié au niveau du système de | |
| fichiers, vous <em>devez</em> redémarrer le serveur (voir la | |
| documentation sur l'<a href="../stopping.html">Arrêt et redémarrage</a>). Pour bien | |
| insister sur ce point, si des fichiers sont modifiés <em>sur | |
| disque</em>, et si vous ne redémarrez pas le serveur, vous allez | |
| finir par servir des contenus complètement obsolètes. Vous devez | |
| mettre à jour les fichiers en renommant l'ancienne version et en | |
| enregistrant la nouvelle sur disque. Pour y parvenir, on peut | |
| utiliser des outils comme <code>rdist</code> et <code>mv</code>. | |
| La raison pour laquelle ce module ne prend pas en compte les | |
| modifications de fichiers réside dans le fait que cette | |
| vérification nécessiterait un appel à <code>stat()</code> à chaque | |
| accès, et en fin de compte, l'augmentation de la consommation de | |
| ressources finirait par aller contre le but initial de | |
| réduire les entrées/sorties.</p> | |
| <h3>Directive CacheFile</h3> | |
| <p>La directive <code class="directive"><a href="#cachefile">CacheFile</a></code> du module | |
| <code class="module"><a href="../mod/mod_file_cache.html">mod_file_cache</a></code> permet d'associer un | |
| <em>gestionnaire</em> ou <em>descripteur de fichier</em> à chaque | |
| fichier énuméré dans la directive de configuration et place ces | |
| gestionnaires de fichiers ouverts dans le cache. Lorsqu'un des | |
| fichier est demandé, le serveur sélectionne son gestionnaire dans | |
| le cache et le transmet à l'API <code>sendfile()</code> (ou | |
| <code>TransmitFile()</code> sous Windows).</p> | |
| <p>Cette mise en cache des gestionnaire n'est effectuée qu'une | |
| seule fois au démarrage ou redémarrage du système. Ainsi, chaque | |
| fois qu'un des fichiers chargés en mémoire est modifié au niveau | |
| du système de fichiers, vous <em>devez</em> redémarrer le serveur | |
| (voir la documentation sur l'<a href="../stopping.html">Arrêt et redémarrage</a>). | |
| Pour bien | |
| insister sur ce point, si des fichiers sont modifiés <em>sur | |
| disque</em>, et si vous ne redémarrez pas le serveur, vous allez | |
| finir par servir des contenus complètement obsolètes. Vous devez | |
| mettre à jour les fichiers en renommant l'ancienne version et en | |
| enregistrant la nouvelle sur disque. Pour y parvenir, on peut | |
| utiliser des outils comme <code>rdist</code> et | |
| <code>mv</code>.</p> | |
| <div class="note"><h3>Note</h3> | |
| <p>Ne cherchez pas de directive qui met tous les | |
| fichiers d'un répertoire en cache, de manière récursive. Pour y | |
| parvenir, vous pouvez vous reporter à la directive <code class="directive"><a href="../mod/core.html#include">Include</a></code>, et considérer cette | |
| commande :</p> | |
| <div class="example"><p><code> | |
| find /www/htdocs -type f -print \<br> | |
| | sed -e 's/.*/mmapfile &/' > /www/conf/mmap.conf | |
| </code></p></div> | |
| </div> | |
| </div> | |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div> | |
| <div class="directive-section"><h2 id="cachefile">Directive <span id="CacheFile">CacheFile</span> <a title="Lien permanent" href="#cachefile" class="permalink">¶</a></h2> | |
| <table class="directive"> | |
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en cache une liste de gestionnaires de fichiers au | |
| démarrage</td></tr> | |
| <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheFile <var>chemin_fichier</var> [<var>chemin fichier</var>] ...</code></td></tr> | |
| <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr> | |
| <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr> | |
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr> | |
| </table> | |
| <p>La directive <code class="directive">CacheFile</code> associe | |
| des gestionnaires à un ou plusieurs fichiers (séparés par des | |
| espaces), et place ceux-ci dans le cache au démarrage du | |
| serveur. Les gestionnaires des fichiers mis en cache sont | |
| automatiquement fermés à l'arrêt du serveur. Lorsqu'un ou plusieurs | |
| fichiers ont été modifiés sur disque, le serveur doit être redémarré | |
| afin que les modifications soient prises en compte par le cache.</p> | |
| <p>Soyez prudent avec les arguments <var>chemin_fichier</var> : ils | |
| doivent correspondre exactement au chemin du système de fichier que | |
| créent les gestionnaires de traduction URL-vers-nom-fichier | |
| d'Apache. On ne peut pas comparer des inodes ou autres identifiants | |
| pour mettre en correspondance des chemins à l'aide de liens | |
| symboliques <em>(etc...)</em>, car là encore, ceci nécessiterait un | |
| appel à <code>stat()</code> supplémentaire, ce qui est inacceptable. | |
| Il n'est pas garanti que ce module fonctionne avec des noms de | |
| fichiers réécrits par <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> ou | |
| <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p> | |
| <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">CacheFile /usr/local/apache/htdocs/index.html</pre> | |
| </div> | |
| </div> | |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div> | |
| <div class="directive-section"><h2 id="mmapfile">Directive <span id="MMapFile">MMapFile</span> <a title="Lien permanent" href="#mmapfile" class="permalink">¶</a></h2> | |
| <table class="directive"> | |
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Charge au démarrage une liste de fichiers en | |
| mémoire</td></tr> | |
| <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MMapFile <var>chemin fichier</var> [<var>chemin_fichier</var>] ...</code></td></tr> | |
| <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr> | |
| <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr> | |
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr> | |
| </table> | |
| <p>La directive <code class="directive">MMapFile</code> provoque le chargement d'un | |
| ou plusieurs fichiers (séparés par des espaces) en mémoire au | |
| démarrage du serveur. Ceux-ci sont automatiquement déchargés de la | |
| mémoire à l'arrêt du serveur. Lorsqu'un ou plusieurs fichiers ont | |
| été modifiés sur disque, on doit au minimum envoyer un signal | |
| <code>HUP</code> ou <code>USR1</code> au serveur afin de les | |
| re<code>mmap()</code>er.</p> | |
| <p>Soyez prudent avec les arguments <var>chemin_fichier</var> : ils | |
| doivent correspondre exactement au chemin du système de fichier que | |
| créent les gestionnaires de traduction URL-vers-nom-fichier | |
| d'Apache. On ne peut pas comparer des inodes ou autres identifiants | |
| pour mettre en correspondance des chemins à l'aide de liens | |
| symboliques <em>(etc...)</em>, car là encore, ceci nécessiterait un | |
| appel à <code>stat()</code> supplémentaire, ce qui est inacceptable. | |
| Il n'est pas garanti que ce module fonctionne avec des noms de | |
| fichiers réécrits par <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> ou | |
| <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p> | |
| <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">MMapFile /usr/local/apache/htdocs/index.html</pre> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="bottomlang"> | |
| <p><span>Langues Disponibles: </span><a href="../en/mod/mod_file_cache.html" hreflang="en" rel="alternate" title="English"> en </a> | | |
| <a href="../fr/mod/mod_file_cache.html" title="Français"> fr </a> | | |
| <a href="../ko/mod/mod_file_cache.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> | |
| </div><div id="footer"> | |
| <p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autorisé sous <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> | |
| <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!-- | |
| if (typeof(prettyPrint) !== 'undefined') { | |
| prettyPrint(); | |
| } | |
| var langToggle = document.querySelector('.lang-toggle'); | |
| var topLang = document.querySelector('.toplang'); | |
| if (langToggle && topLang) { | |
| langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); }); | |
| } | |
| var qv = document.getElementById('quickview'); | |
| if (qv) { | |
| document.body.appendChild(qv); | |
| var qvBtn = document.createElement('button'); | |
| qvBtn.className = 'qv-toggle'; | |
| qvBtn.setAttribute('aria-label', 'Toggle page navigation'); | |
| qvBtn.innerHTML = '☰'; | |
| document.body.appendChild(qvBtn); | |
| qvBtn.addEventListener('click', function() { | |
| var isOpen = qv.classList.toggle('open'); | |
| if (isOpen) { | |
| qv.style.top = window.scrollY + 10 + 'px'; | |
| } | |
| }); | |
| window.addEventListener('scroll', function() { qv.classList.remove('open'); }); | |
| } | |
| //--><!]]></script> | |
| </body></html> |