Performances

Les performances d’un serveur mandataire peuvent être améliorées en mettant en cache les pages entrantes, afin qu’elles puissent être directement servies la prochaine fois qu’elles seront demandées : cela évite ainsi d’aller les rechercher sur le Web. Il est possible de faire la même chose pour les pages sortantes, notamment celles qui sont produites dynamiquement par les scripts CGI et les requêtes sur les bases de données (en n’oubliant pas que cela peut produire des contenus périmés et que ce n’est donc pas toujours souhaitable).

Cache interne

Une autre raison d’utiliser un serveur mandataire est que cela permet de mettre en cache les données provenant du Web et d’économiser la bande passante des réseaux mondiaux, déjà assez saturés. Cela permet souvent d’améliorer également la rapidité d’accès à notre serveur.

La directive CacheRoot, astucieusement placée dans le fichier de configuration que nous avons présenté plus haut, grâce à laquelle nous indiquons un répertoire cache dont les permissions auront été correctement positionnées, nous permet de montrer ce fonctionnement. Nous avons indiqué le répertoire .site.proxy/cache et nous constatons qu’Apache le complète avec une structure de répertoires de la forme .site.proxy/cache/d/o/j/gfqbZ@49rZiy6LOCw.

Le fichier gfqbZ@49rZiy6LOCw contient les lignes suivantes :

320994B6 32098D95 3209956C 00000000 0000001E

X-URL: http://192.168.124.1/message

HTTP/1.0 200 OK

Date: Thu, 08 Aug 1996 07:18:14 GMT

Server: Apache/1.1.1

Content-length: 30

Last-modified Thu, 08 Aug 1996 06:47:49 GMT

 

Je suis un site web loin, très loin d’ici.

La prochaine fois que quelqu’un accèdera à http://192.168.124.1/message le serveur mandataire n’aura pas besoin de traîner des octets à travers le Web : il lui suffira de produire ce fichier.

Nous allons maintenant présenter les différentes directives permettant de gérer la mise en cache.

CacheRoot

CacheRoot répertoire

Valeur par défaut : aucune

Configuration du serveur, hôte virtuel

Cette directive indique le répertoire qui contient les fichiers du cache. Apache doit avoir le droit d’écrire dans celui-ci.

CacheSize

CacheSize nb-kilo-octets

Valeur par défaut : 5

Configuration du serveur, hôte virtuel

Cette directive fixe la taille du cache en kilo-octets. Cette taille peut atteindre temporairement une taille supérieure, mais le ramasse-miettes ( garbage collector ) le réduira à une taille inférieure ou égale à celle fixée.

CacheGcInterval

CacheGcInterval nb-heures

Valeur par défaut : aucune

Configuration du serveur, hôte virtuel.

Cette directive fixe la fréquence, en heures, à laquelle Apache vérifie le cache et lance le ramasse-miettes si le volume des données excède CacheSize.

CacheMaxExpire

CacheMaxExpire nb-heures

Valeur par défaut : 24

Configuration du serveur, hôte virtuel.

Cette directive fixe la durée pendant laquelle les documents restent dans le cache. Cette limite est respectée, même si un document est fourni avec une date d’expiration qui s’étend au-delà de cette durée.

CacheLastModifiedFactor

CacheLastModifiedFactor facteur

Valeur par défaut : 0.1

Configuration par défaut, hôte virtuel.

Si le document ne fournit aucune date d’expiration, Apache en estime une en multipliant la date de dernière modification par facteur. CacheMaxExpire a priorité sur cette valeur.

CacheDefaultExpire

CacheDefaultExpire nb-heures

Valeur par défaut : 1

Configuration du serveur, hôte virtuel.

La valeur de cette directive est utilisée si le document est récupéré via un protocole ne permettant pas de déterminer les temps d’expiration. Elle n’est pas surchargée par la valeur de CacheMaxExpire.

CacheDirLevels et CacheDirLength

CacheDirLevels nombre

Valeur par défaut : 3

CacheDirLength nombre

Valeur par défaut : 1

Configuration du serveur, hôte virtuel.

Le module mod_proxy stocke son cache en utilisant des noms de fichiers résultant d’un hachage de l’URL. Ces noms de fichiers sont divisés en CacheDirLevels niveaux de répertoires utilisant CacheDirLength caractères pour chaque niveau. Ce mécanisme optimise la recherche des fichiers (sur certains systèmes, une structure à plat est très lente d’accès). Ainsi :

CacheDirLevels 3

CacheDirLength 2

convertira le hachage « abcdefghijk » en ab/cd/ef/ghijk. Un vrai hachage a, en fait, une longueur de 22 caractères, chacun d’eux pouvant prendre 64 valeurs possibles (26). Ainsi, avec ces trois niveaux et des noms de répertoires d’un seul caractère, on pourrait obtenir 218 répertoires. Il faut adapter ce nombre à celui des entrées de cache prévues (218 équivalant grossièrement à un quart de million, on peut donc mettre en cache plusieurs millions d’entrées).

CacheNegotiatedDocs

CacheNegotiatedDocs

Valeur par défaut : aucune

Configuration du serveur, hôte virtuel.

Si cette directive est présente dans le fichier de configuration, elle autorise la mise en cache des documents à contenu négocié par les serveurs mandataires. Cela pourrait signifier que les clients situés derrière ces mandataires pourraient récupérer des versions de ces documents ne correspondant pas exactement à leurs préférences, mais cela rend la mise en cache plus efficace.

Cette directive ne s’applique qu’aux requêtes provenant de navigateurs suivant la norme HTTP 1.0. HTTP 1.1 fournit un bien meilleur contrôle de la mise en cache des documents à contenu négocié : cette directive n’a donc pas d’effets sur les requêtes utilisant cette version du protocole. Notez qu’il existe désormais très peu de navigateurs HTTP 1.0.

NoCache

NoCache [hôte|domaine] [hôte|domaine] ...

Cette directive indique une liste d’hôtes et/ou de domaines pour lesquels les documents ne seront pas mis en cache : le site qui vous fournit le cours de vos actions en temps réel, par exemple.

Apache La référence
titlepage.xhtml
APACHE-la-REF_split_000.htm
APACHE-la-REF_split_001.htm
APACHE-la-REF_split_002.htm
APACHE-la-REF_split_003.htm
APACHE-la-REF_split_004.htm
APACHE-la-REF_split_005.htm
APACHE-la-REF_split_006.htm
APACHE-la-REF_split_007.htm
APACHE-la-REF_split_008.htm
APACHE-la-REF_split_009.htm
APACHE-la-REF_split_010.htm
APACHE-la-REF_split_011.htm
APACHE-la-REF_split_012.htm
APACHE-la-REF_split_013.htm
APACHE-la-REF_split_014.htm
APACHE-la-REF_split_015.htm
APACHE-la-REF_split_016.htm
APACHE-la-REF_split_017.htm
APACHE-la-REF_split_018.htm
APACHE-la-REF_split_019.htm
APACHE-la-REF_split_020.htm
APACHE-la-REF_split_021.htm
APACHE-la-REF_split_022.htm
APACHE-la-REF_split_023.htm
APACHE-la-REF_split_024.htm
APACHE-la-REF_split_025.htm
APACHE-la-REF_split_026.htm
APACHE-la-REF_split_027.htm
APACHE-la-REF_split_028.htm
APACHE-la-REF_split_029.htm
APACHE-la-REF_split_030.htm
APACHE-la-REF_split_031.htm
APACHE-la-REF_split_032.htm
APACHE-la-REF_split_033.htm
APACHE-la-REF_split_034.htm
APACHE-la-REF_split_035.htm
APACHE-la-REF_split_036.htm
APACHE-la-REF_split_037.htm
APACHE-la-REF_split_038.htm
APACHE-la-REF_split_039.htm
APACHE-la-REF_split_040.htm
APACHE-la-REF_split_041.htm
APACHE-la-REF_split_042.htm
APACHE-la-REF_split_043.htm
APACHE-la-REF_split_044.htm
APACHE-la-REF_split_045.htm
APACHE-la-REF_split_046.htm
APACHE-la-REF_split_047.htm
APACHE-la-REF_split_048.htm
APACHE-la-REF_split_049.htm
APACHE-la-REF_split_050.htm
APACHE-la-REF_split_051.htm
APACHE-la-REF_split_052.htm
APACHE-la-REF_split_053.htm
APACHE-la-REF_split_054.htm
APACHE-la-REF_split_055.htm
APACHE-la-REF_split_056.htm
APACHE-la-REF_split_057.htm
APACHE-la-REF_split_058.htm
APACHE-la-REF_split_059.htm
APACHE-la-REF_split_060.htm
APACHE-la-REF_split_061.htm
APACHE-la-REF_split_062.htm
APACHE-la-REF_split_063.htm
APACHE-la-REF_split_064.htm
APACHE-la-REF_split_065.htm
APACHE-la-REF_split_066.htm
APACHE-la-REF_split_067.htm
APACHE-la-REF_split_068.htm
APACHE-la-REF_split_069.htm
APACHE-la-REF_split_070.htm
APACHE-la-REF_split_071.htm
APACHE-la-REF_split_072.htm
APACHE-la-REF_split_073.htm
APACHE-la-REF_split_074.htm
APACHE-la-REF_split_075.htm
APACHE-la-REF_split_076.htm
APACHE-la-REF_split_077.htm
APACHE-la-REF_split_078.htm
APACHE-la-REF_split_079.htm
APACHE-la-REF_split_080.htm
APACHE-la-REF_split_081.htm
APACHE-la-REF_split_082.htm
APACHE-la-REF_split_083.htm
APACHE-la-REF_split_084.htm
APACHE-la-REF_split_085.htm
APACHE-la-REF_split_086.htm
APACHE-la-REF_split_087.htm
APACHE-la-REF_split_088.htm
APACHE-la-REF_split_089.htm
APACHE-la-REF_split_090.htm
APACHE-la-REF_split_091.htm
APACHE-la-REF_split_092.htm
APACHE-la-REF_split_093.htm
APACHE-la-REF_split_094.htm
APACHE-la-REF_split_095.htm
APACHE-la-REF_split_096.htm
APACHE-la-REF_split_097.htm
APACHE-la-REF_split_098.htm
APACHE-la-REF_split_099.htm
APACHE-la-REF_split_100.htm
APACHE-la-REF_split_101.htm
APACHE-la-REF_split_102.htm
APACHE-la-REF_split_103.htm
APACHE-la-REF_split_104.htm
APACHE-la-REF_split_105.htm
APACHE-la-REF_split_106.htm
APACHE-la-REF_split_107.htm
APACHE-la-REF_split_108.htm
APACHE-la-REF_split_109.htm
APACHE-la-REF_split_110.htm
APACHE-la-REF_split_111.htm
APACHE-la-REF_split_112.htm
APACHE-la-REF_split_113.htm
APACHE-la-REF_split_114.htm
APACHE-la-REF_split_115.htm
APACHE-la-REF_split_116.htm
APACHE-la-REF_split_117.htm
APACHE-la-REF_split_118.htm
APACHE-la-REF_split_119.htm
APACHE-la-REF_split_120.htm
APACHE-la-REF_split_121.htm
APACHE-la-REF_split_122.htm
APACHE-la-REF_split_123.htm
APACHE-la-REF_split_124.htm
APACHE-la-REF_split_125.htm
APACHE-la-REF_split_126.htm
APACHE-la-REF_split_127.htm
APACHE-la-REF_split_128.htm
APACHE-la-REF_split_129.htm
APACHE-la-REF_split_130.htm
APACHE-la-REF_split_131.htm
APACHE-la-REF_split_132.htm
APACHE-la-REF_split_133.htm
APACHE-la-REF_split_134.htm
APACHE-la-REF_split_135.htm
APACHE-la-REF_split_136.htm
APACHE-la-REF_split_137.htm
APACHE-la-REF_split_138.htm
APACHE-la-REF_split_139.htm
APACHE-la-REF_split_140.htm
APACHE-la-REF_split_141.htm
APACHE-la-REF_split_142.htm
APACHE-la-REF_split_143.htm
APACHE-la-REF_split_144.htm
APACHE-la-REF_split_145.htm
APACHE-la-REF_split_146.htm
APACHE-la-REF_split_147.htm
APACHE-la-REF_split_148.htm
APACHE-la-REF_split_149.htm
APACHE-la-REF_split_150.htm
APACHE-la-REF_split_151.htm
APACHE-la-REF_split_152.htm
APACHE-la-REF_split_153.htm
APACHE-la-REF_split_154.htm
APACHE-la-REF_split_155.htm
APACHE-la-REF_split_156.htm
APACHE-la-REF_split_157.htm
APACHE-la-REF_split_158.htm
APACHE-la-REF_split_159.htm
APACHE-la-REF_split_160.htm
APACHE-la-REF_split_161.htm
APACHE-la-REF_split_162.htm
APACHE-la-REF_split_163.htm
APACHE-la-REF_split_164.htm
APACHE-la-REF_split_165.htm
APACHE-la-REF_split_166.htm
APACHE-la-REF_split_167.htm
APACHE-la-REF_split_168.htm
APACHE-la-REF_split_169.htm
APACHE-la-REF_split_170.htm
APACHE-la-REF_split_171.htm
APACHE-la-REF_split_172.htm
APACHE-la-REF_split_173.htm
APACHE-la-REF_split_174.htm