Serveur HTTP Apache Version 2.4

| Description: | Mise en cache mémoire d'une liste statique de fichiers | 
|---|---|
| Statut: | Expérimental | 
| Identificateur de Module: | file_cache_module | 
| Fichier Source: | mod_file_cache.c | 
mod_file_cache peut facilement conduire à la
      création d'un site inopérant.
    La mise en cache de fichiers souvent demandés mais rarement
    modifiés est une technique permettant de réduire la charge du
    serveur. mod_file_cache met en oeuvre deux
    techniques de mise en cache de fichiers statiques
    fréquemment demandés. Des directives de configuration vous
    permettent d'indiquer à mod_file_cache soit
    d'ouvrir et de charger une image en mémoire d'un fichier avec
    mmap(), soit de préouvrir un fichier et de maintenir en
    service le gestionnaire du fichier. Les deux techniques
    permettent de 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.
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, normalement servis par le gestionnaire de contenu de base d'Apache.
Ce module est une extension du module
    d'Apache 1.3 mod_mmap_staticet s'en inspire
    fortement .
mod_file_cache gère la mise en cache d'une liste
    de fichiers définie de manière statique via une des directives
    MMapFile ou
    CacheFile au niveau
    de la configuration du serveur principal.
Les deux directives ne sont pas supportées par toutes les
    plates-formes. Par exemple, Apache pour Windows ne supporte pas
    actuellement la directive MMapFile, 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.
La directive MMapFile du module
      mod_file_cache permet de transférer en mémoire
      une liste statique de fichiers à l'aide de l'appel système
      mmap(). 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
      mmap()és, et l'expérimentation est probablement la
      méthode la plus simple pour déterminer ces limites.
Ce mmap()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 devez redémarrer le serveur (voir la
      documentation sur l'Arrêt et redémarrage). Pour bien
      insister sur ce point, si des fichiers sont modifiés sur
      disque, 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 rdist et mv.
      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 à stat() à 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.
La directive CacheFile du module
      mod_file_cache permet d'associer un
      gestionnaire ou descripteur de fichier à 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 sendfile() (ou
      TransmitFile() sous Windows).
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 devez redémarrer le serveur
      (voir la documentation sur l'Arrêt et redémarrage).
      Pour bien
      insister sur ce point, si des fichiers sont modifiés sur
      disque, 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 rdist et
      mv.
Ne cherchez pas à trouver 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 Include directive, et considérer cette
      commande :
        find /www/htdocs -type f -print \
        | sed -e 's/.*/mmapfile &/' > /www/conf/mmap.conf
      
| Description: | Met en cache une liste de gestionnaires de fichiers au démarrage | 
|---|---|
| Syntaxe: | CacheFile chemin fichier [chemin fichier] ... | 
| Contexte: | configuration globale | 
| Statut: | Expérimental | 
| Module: | mod_file_cache | 
La directive CacheFile permet d'associer
    des gestionnaires à un ou plusieurs fichiers (séparés par des
    espaces), et de placer 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.
Soyez prudent avec les arguments chemin fichier : 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 (etc...), car là encore, ceci nécessiterait un
    appel à stat() supplémentaire, ce qui n'est pas acceptable.
    Il n'est pas garanti que ce module fonctionne avec des noms de
    fichiers réécrits par mod_alias ou
    mod_rewrite.
CacheFile /usr/local/apache/htdocs/index.html
| Description: | Charge au démarrage une liste de fichiers en mémoire | 
|---|---|
| Syntaxe: | MMapFile chemin fichier [chemin fichier] ... | 
| Contexte: | configuration globale | 
| Statut: | Expérimental | 
| Module: | mod_file_cache | 
La directive MMapFile permet de charger 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
    HUP ou USR1 au serveur afin de les
    remmap()er.
Soyez prudent avec les arguments chemin fichier : 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 (etc...), car là encore, ceci nécessiterait un
    appel à stat() supplémentaire, ce qui n'est pas
    acceptable.
    Il n'est pas garanti que ce module fonctionne avec des noms de
    fichiers réécrits par mod_alias ou
    mod_rewrite.
MMapFile /usr/local/apache/htdocs/index.html