mod_cache_disk
Module de stockage sur disque pour le filtre de mise en cache HTTP.
Extension
mod_cache_disk.c
cache_disk_module

mod_cache_disk implémente un gestionnaire de stockage sur disque pour le module mod_cache.

Les en-têtes et corps des réponses mises en cache sont stockés séparément sur le disque, dans une structure de répertoires basée sur le condensé md5 de l'URL mise en cache.

Plusieurs réponses au contenu négocié peuvent être stockées en même temps, mais la mise en cache de contenus partiels n'est pas supportée actuellement par ce module.

Les mises à jour atomiques du cache pour les fichiers d'en-tête et de corps peuvent être effectuées sans verrouillage en enregistrant les numéros d'inode et de périphérique du fichier de corps dans le fichier d'en-tête. Ceci implique que les entrées du cache déplacées manuellement dans le cache seront ignorées.

L'utilitaire htcacheclean permet de lister et de supprimer les URLs du cache, ou de maintenir le cache en deçà de certaines limites de taille et/ou de nombre d'inodes. L'utilitaire peut être exécuté à la demande, ou automatiquement pour assurer un contrôle continu des tailles des répertoires.

# Note :

mod_cache doit être chargé avant mod_cache_disk pour que ce dernier puisse fonctionner.

# Note :

Lorsque la plate-forme la supporte, et si elle est activée via la directive EnableSendfile, mod_cache_disk utilise la fonctionnalité sendfile pour servir les fichiers à partir du cache. Cependant, mod_cache_disk ignore la configuration de la directive EnableSendfile dans un contexte de répertoire ou de fichier .htaccess, car le module ne dispose pas des définitions correspondantes lorsque la requête est servie depuis le cache.

mod_cache
mod_cache_socache
Guide de la mise en cache
CacheRoot
La racine du répertoire dans lequel les fichiers du cache seront stockés
CacheRoot répertoire
server config
virtual host

La directive CacheRoot permet de définir le nom du répertoire sur disque qui contiendra les fichiers du cache. Si le module mod_cache_disk a été chargé ou compilé dans le serveur Apache, cette directive doit être définie. L'absence de définition de la directive CacheRoot provoquera une erreur de traitement du fichier de configuration. Les directives CacheDirLevels et CacheDirLength permettent de définir la structure des sous-répertoires du répertoire racine spécifié.

CacheRoot c:/cacheroot
CacheDirLevels
Le nombre de niveaux de sous-répertoires que comportera le cache.
CacheDirLevels niveaux
CacheDirLevels 2
server config
virtual host

La directive CacheDirLevels permet de définir le nombre de niveaux de sous-répertoires que comportera le cache. Les données du cache seront stokées au niveau correspondant par rapport au répertoire CacheRoot.

Une valeur haute pour CacheDirLevels combinée avec une valeur basse pour CacheDirLength générera une arborescence très développée, avec un petit nombre de sous-répertoires à chaque niveau.

La valeur du produit CacheDirLevels * CacheDirLength ne doit pas dépasser 20.

CacheDirLength
Le nombre de caractères des noms des sous-répertoires
CacheDirLength longueur
CacheDirLength 2
server config
virtual host

la directive CacheDirLength permet de définir le nombre de caractères que comportera chaque nom de sous-répertoire de la hiérarchie du cache. On peut l'utiliser en conjonction avec CacheDirLevels pour déterminer une structure approximative de la hiérarchie de cache.

Une valeur haute pour CacheDirLength combinée avec une valeur basse pour CacheDirLevels générera une hiérarchie relativement peu profonde, avec un grand nombre de sous-répertoires à chaque niveau.

La valeur du produit CacheDirLevels * CacheDirLength ne doit pas dépasser 20.

CacheMinFileSize
La taille minimale (en octets) d'un document pour pouvoir être stocké dans le cache
CacheMinFileSize octets
CacheMinFileSize 1
server config
virtual host
directory
.htaccess

La directive CacheMinFileSize permet de définir la taille minimale d'un document, en octets, pour que celui-ci puisse faire l'objet d'un stockage dans le cache.

CacheMinFileSize 64
CacheMaxFileSize
>La taille maximale (en octets) d'un document pour pouvoir être stocké dans le cache
CacheMaxFileSize octets
CacheMaxFileSize 1000000
server config
virtual host
directory
.htaccess

La directive CacheMaxFileSize permet de définir la taille maximale d'un document, en octets, pour que celui-ci puisse faire l'objet d'un stockage dans le cache.

CacheMaxFileSize 64000
CacheReadSize
La quantité minimale (en octets) de données à lire et à mettre en cache avant de les envoyer au client
CacheReadSize octets
CacheReadSize 0
server config
virtual host
directory
.htaccess

La directive CacheReadSize permet de définir la quantité minimale de données, en octets, à lire depuis le serveur d'arrière-plan avant de les envoyer au client. Avec la valeur par défaut zéro, toute donnée de toutes tailles est envoyée au client dès qu'elle est disponible. Avec une valeur non nulle, le cache disque met en tampon au moins la quantité de données correspondante avant d'envoyer la réponse au client. Les performances peuvent s'en trouver améliorées lorsqu'on met en cache du contenu en provenance d'un mandataire inverse.

Cette directive ne prend effet que lorsque les données sont enregistrées dans le cache, et non lorsque les données sont servies à partir du cache.

CacheReadSize 102400
CacheReadTime
Le temps minimum (en millisecondes) qui doit s'écouler avant d'envoyer les données au client
CacheReadTime millisecondes
CacheReadTime 0
server config
virtual host
directory
.htaccess

La directive CacheReadTime permet de définir le temps minimum qui doit s'écouler avant d'essayer d'envoyer des données au client. Pendant ce temps, les données sont mises en tampon avant de pouvoir être envoyées au client. Les performances peuvent s'en trouver améliorées lorsqu'on met en cache du contenu en provenance d'un mandataire inverse.

La valeur par défaut zéro désactive cette option.

Cette directive ne prend effet que lorsque les données sont enregistrées dans le cache, et non lorsque les données sont servies à partir du cache. Il est recommandé d'harmoniser l'utilisation de cette directive avec celle de la directive CacheReadSize, afin de s'assurer que le serveur n'effectue pas une mise en tampon excessive au cas où les données arriveraient plus vite que prévu.

CacheReadTime 1000