From 550d8e8e6ccef95a119bc265101792b0475a7aa0 Mon Sep 17 00:00:00 2001
From: Daniel Baumann mod_file_cache
et du programme htcacheclean.
Il décrit l'utilisation des fonctionnalités de mise en
cache du serveur HTTP Apache
- pour accélérer les services web et proxy, tout en évitant les problèmes
+ pour accélérer les services web et mandataire, tout en évitant les problèmes
courants et les erreurs de configuration.
Une entrée d'un cache HTTP peut se présenter sous un de ces trois états :
@@ -244,7 +244,7 @@ nombreux alias du serveur, la définition de la directiveUseCanonicalName
à
On
peut augmenter de manière significative le nombre
- de correspondances positives dans le cache. Ceci est du au fait
+ de correspondances positives dans le cache. Cela est dû au fait
que la clé du cache contient le nom d'hôte du serveur virtuel.
Avec UseCanonicalName
positionnée
à On
,
@@ -258,13 +258,13 @@
Un contenu bien formé destiné à être mis en cache doit déclarer
- explicitement une durée de fraîcheur via les champs
+ explicitement une durée de fraîcheur à l'aide des champs
max-age
ou s-maxage
de l'en-tête
Cache-Control
, ou en incluant un en-tête
Expires
.
De plus, un client peut passer outre la durée de fraîcheur
- définie pour le serveur original en ajoutant son propre en-tête
+ définie pour le serveur d'origine en ajoutant son propre en-tête
Cache-Control
à la requête. Dans ce cas, c'est la
durée de fraîcheur la plus basse entre la requête et la réponse
qui l'emporte.
Si une réponse ne contient pas d'en-tête Expires
mais
inclut un en-tête Last-Modified
, mod_cache
peut déduire une durée de fraîcheur en se basant sur une
- heuristique, qui peut être contrôlée via la directive CacheLastModifiedFactor
.
CacheLastModifiedFactor
.
Pour les contenus locaux, ou les contenus distants qui ne
spécifient pas leur propre en-tête Expires
,
mod_expires
permet de régler finement la durée de
- fraîcheur via les paramètres max-age
et
+ fraîcheur à l'aide des paramètres max-age
et
Expires
.
On peut aussi contrôler la durée de fraîcheur maximale en utilisant @@ -309,7 +309,7 @@
Lorsqu'un serveur d'origine reçoit une requête conditionnelle, il vérifie si le paramètre Etag ou Last-Modified a été modifié en fonction des paramètres de la requête. Si ce n'est pas le cas, il - répondra avec le message lapidaire "304 Not Modified". Ceci + répondra avec le message lapidaire "304 Not Modified". Cela informe le cache que le contenu est périmé mais encore à jour, et peut être utilisé tel quel pour les prochaines requêtes jusqu'à ce qu'il atteigne à nouveau sa date de péremption.
@@ -348,7 +348,7 @@ réponse puisse être enregistrée dans un cache HTTP est fournie dans la section 13.4 Response Cacheability de la RFC2616, et peut se résumer - ainsi : + ainsi :Les contenus qui varient au cours du temps, ou en fonction de
particularités de la requête non prises en compte par la
négociation HTTP ne doivent pas être mis en cache. Ce type de
- contenu doit se déclarer lui-même "à ne pas mettre en cache" via
+ contenu doit se déclarer lui-même "à ne pas mettre en cache" à l'aide de
l'en-tête Cache-Control
.
Si le contenu change souvent, suite par exemple à une durée de @@ -472,8 +472,8 @@ Vary: negotiate,accept-language,accept-charset
Le module mod_cache
s'appuie sur des
implémentations de stockage sous-jacentes spécifiques pour gérer
- le cache ; à ce titre, mod_cache_disk
fournit le
- support de la mise en cache sur disque.
mod_cache_disk
fournit la
+ prise en charge de la mise en cache sur disque.
En général, le module se configure comme suit :
@@ -500,7 +500,7 @@ CacheDirLength 1 caractères de l'URL qui a fait l'objet d'une requête. Cette empreinte comprend le nom d'hôte, le protocole, le port, le chemin et tout argument de type CGI associé à l'URL, ainsi que les éléments - spécifiés dans l'en-tête Vary afin d'être sur que plusieurs URLs + spécifiés dans l'en-tête Vary afin d'être sûr que plusieurs URLs n'interfèrent pas entre elles.Chaque position de l'empreinte peut contenir un caractère
@@ -508,7 +508,7 @@ CacheDirLength 1
64^22 possibilités pour une empreinte. Par exemple, une URL peut posséder
l'empreinte xyTGxSMO2b68mBCykqkp1w
. Cette empreinte est
utilisée pour préfixer les noms de fichiers spécifiques à cette URL à
- l'intérieur du cache; cependant, elle est tout d'abord placée dans les
+ l'intérieur du cache ; cependant, elle est tout d'abord placée dans les
répertoires du cache selon les directives
CacheDirLevels
et
CacheDirLength
.
Le module mod_cache_disk
n'effectue aucune
- régulation de l'espace disque utilisé par le cache, mais s'il
+ régulation de l'espace disque utilisé par le cache, bien qu'il
s'arrête en douceur en cas d'erreur disque et se comporte alors
comme si le cache n'avait jamais existé.
Par contre l'utilitaire +
Par contre, l'utilitaire htcacheclean fourni avec httpd vous permet de nettoyer le cache périodiquement. @@ -587,7 +587,7 @@ CacheDirLength 1 typique du cache / séquence de nettoyage.
Comme mod_cache_disk
ne tient pas compte de l'espace
- utilisé dans le cache, vous devez vous assurer que
+ utilisé, vous devez vous assurer que
htcacheclean est configuré de
façon à laisser suffisamment d'"espace de croissance"
à la suite d'un nettoyage.
En outre, il est possible de spécifier plusieurs serveurs
memcached
en les ajoutant à la fin de la ligne
- CacheSocache memcache:
et en les séparant par des virgules :
CacheSocache memcache:
et en les séparant par des virgules :
CacheEnable socache / CacheSocache memcache:mem1.example.com:11211,mem2.example.com:11212
Divers autres fournisseurs mod_cache_socache
utilisent
- aussi ce format. Par exemple :
CacheEnable socache / CacheSocache shmcb:/path/to/datafile(512000)@@ -643,8 +643,8 @@ CacheSocache dbm:/path/to/datafile niveau pour la mise en cache d'informations comme les sessions SSL ou les données d'authentification dans l'interface socache. -
Pour chaque implémentation un module supplémentaire est fourni - qui offre les services d'arrière-plan suivants :
+Pour chaque implémentation, un module supplémentaire est fourni + qui offre les services d'arrière-plan suivants :
mod_socache_dbm
Cependant la mémoire système n'est pas bon marché; à capacité égale, +
Cependant la mémoire système n'est pas bon marché ; à capacité égale, c'est de loin le type de stockage le plus coûteux et il est important de s'assurer qu'elle est utilisée efficacement. Le fait de mettre en cache des fichiers en mémoire diminue d'autant la quantité de mémoire système @@ -793,22 +793,20 @@ user 0m0.003s sys 0m0.000s
Même pour ce petit fichier, il y a une grande différence entre les - temps nécessaires pour lire le fichier. Ceci est du au fait que le + temps nécessaires pour lire le fichier. Cela est dû au fait que le noyau a mis en cache le contenu du fichier en mémoire.
-Du fait de toujours pouvoir disposer de mémoire système, vous pouvez - être assuré qu'il y aura de plus en plus de contenus de fichiers stockés - dans ce cache. Ceci peut s'avérer une méthode de mise en cache en mémoire - très efficace, et ne nécessite aucune configuration supplémentaire +
En s'assurant de toujours pouvoir disposer de mémoire système, vous + pouvez être assuré qu'il y aura de plus en plus de contenus de fichiers + stockés dans ce cache. Cela peut s'avérer une méthode de mise en cache en + mémoire très efficace, et ne nécessite aucune configuration supplémentaire de httpd.
-De plus, comme le système d'exploitation sait si des fichiers - ont été +
De plus, comme le système d'exploitation sait si des fichiers ont été supprimés ou modifiés, il peut effacer automatiquement des contenus de - fichiers du cache lorsque cela s'avère nécessaire. Ceci constitue un gros - avantage par rapport à la mise en cache en mémoire - de httpd qui n'a - aucune possibilité de savoir si un fichier a été modifié.
+ fichiers du cache lorsque cela s'avère nécessaire. Cela constitue un gros + avantage par rapport à la mise en cache en mémoire de httpd qui n'a aucune + possibilité de savoir si un fichier a été modifié.En dépit des performances et des avantages de la mise en cache @@ -821,11 +819,10 @@ sys 0m0.000s
La directive MMapFile
fournie par le module mod_file_cache
vous permet de
- demander à httpd de charger un contenu de fichier statique en mémoire
- lors de son démarrage (à l'aide de l'appel
- système mmap). httpd
- utilisera le contenu chargé en mémoire pour satisfaire ultérieurement
- toutes les demandes d'accès à ce fichier.
MMapFile /usr/local/apache2/htdocs/index.html@@ -877,7 +874,7 @@ sys 0m0.000s
CacheDisable
, ou le module
mod_expires
. Livré à lui-même,
mod_cache
- pratiquement comme un mandataire inverse -
- mettrait en cache le contenu lors de son service, et le servirait ensuite
+ mettrait en cache le contenu lors de sa mise à dispisotion, et le servirait ensuite
à tout client, vers n'importe quelle adresse IP.
Lorsque la directive CacheQuickHandler
est définie à
@@ -889,7 +886,7 @@ sys 0m0.000s
Etant donné que les requêtes des utilisateurs finaux peuvent être +
Etant donné que les réponses vers les utilisateurs finaux peuvent être
servies depuis le cache, ce dernier est une cible potentielle pour ceux
qui veulent défigurer un contenu ou interférer avec lui. Il est important
de garder à l'esprit que l'utilisateur sous lequel tourne
@@ -906,14 +903,13 @@ sys 0m0.000s
modifier une entité dans le cache en utilisant le module
mod_cache_disk
.
Cela représente un risque relativement élévé par rapport aux autres +
Cela représente un risque relativement élevé par rapport aux autres
types d'attaques qu'il est possible de mener sous l'utilisateur apache.
- Si vous utilisez mod_cache_disk
, vous devez garder ceci
- à l'esprit : effectuez toujours les mises à jour de
- httpdquand des
- correctifs de sécurité sont annoncés et exécutez les processus CGI sous
- un utilisateur autre qu'apache en utilisant
- suEXEC dans la mesure du possible.
mod_cache_disk
, vous devez garder ceci à
+ l'esprit : effectuez toujours les mises à jour de httpd quand des
+ correctifs de sécurité sont annoncés et exécutez les processus CGI sous un
+ utilisateur autre qu'apache en utilisant suEXEC
+ dans la mesure du possible.
@@ -925,7 +921,7 @@ sys 0m0.000s
cache" (Cache poisoning). L'empoisonnement du cache est un terme général
pour désigner les attaques au cours desquelles l'attaquant fait en sorte
que le serveur mandataire renvoie à un contenu incorrect (et souvent
- indésirable) suite à en provenance du serveur d'arrière-plan.
+ indésirable) en provenance du serveur d'origine.
Par exemple, si les serveur DNS qu'utilise votre système où tourne @@ -937,9 +933,9 @@ sys 0m0.000s
Ce document n'est pas le bon endroit pour une discussion approfondie à propos de la Dissimulation de requêtes HTTP (utilisez plutôt votre - moteur de recherche favori); il est cependant important de savoir qu'il + moteur de recherche favori) ; il est cependant important de savoir qu'il est possible d'élaborer une série de requêtes, et d'exploiter une - vulnérabilité d'un serveur web d'origine de telle façon que l'attaquant + vulnérabilité d'un serveur web d'origine de façon que l'attaquant puisse contrôler entièrement le contenu renvoyé par le mandataire.
@@ -994,7 +990,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/2.4/caching.html'; } })(window, document); //-->