Apache/Cache

Un livre de Wikilivres.
Aller à : navigation, rechercher


Principe[modifier | modifier le wikicode]

Le cache web enregistre des pages visitées sur un serveur[1] pour les ré-afficher plus rapidement ensuite. Il doit comporter une date d'expiration qui dépend de la fréquence de changement des pages.

link={{{link}}}
Attention !

Ne pas utiliser de cache pour une préproduction sous peine de ne pas voir immédiatement ses modifications.

Configuration du serveur[modifier | modifier le wikicode]

La mise en cache peut être configurée au moyen de plusieurs modules Apache :

a2encode expires
a2encode cache
a2encode file_cache
a2encode mem_cache
a2encode cache_disk # pour Apache version 2.4
a2encode disk_cache # pour Apache version 2.2

Puis ajouter à apache2.conf :

<IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault "access plus 1 month"
        <filesMatch "\.(ico|jpg|jpeg|png|gif)$">
                ExpiresDefault "access plus 1 year"
        </filesMatch>
        ExpiresByType image/x-icon "access plus 1 day"
        ExpiresByType text/css "access plus 1 day"
        ExpiresByType application/javascript "access plus 1 day"
</IfModule>

<IfModule mod_cache.c>
    <IfModule mod_cache_disk.c>
        CacheRoot   "/var/cache/apache2/"
        CacheEnable disk /
        CacheDirLevels 2
        CacheDirLength 1
    </IfModule>
    <IfModule mod_mem_cache.c>
        CacheEnable mem /
        MCacheSize 4096
        MCacheMaxObjectCount 100
        MCacheMinObjectSize 1
        MCacheMaxObjectSize 2048
    </IfModule>
    <IfModule mod_file_cache.c>
        mmapfile /var/cache/apache2/index.html # Liste de page à mettre en cache
    </IfModule>
</IfModule>

Enfin, recharger Apache :

service apache2 reload

Configuration du site[modifier | modifier le wikicode]

Côté HTML, on distingue trois balises méta.

Syntaxe sans cache :

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate, proxy-revalidate, max-age=0, s-maxage=0, post-check=0, pre-check=0" />
<meta http-equiv="Pragma" content="no-cache, no-store" />
<meta http-equiv="Expires" content="0" />

Syntaxe avec cache[2] :

<meta http-equiv="Cache-Control" content="Private" />
<meta http-equiv="Pragma" content="" />
<meta http-equiv="Expires" content="" />

Pour voir la configuration du cache d'un site, il faut regarder l'entête HTTP, par exemple avec :

 curl -I http://example.org

La durée d'expiration de la mémoire cache doit dépendre de la fréquence de rafraichissement du contenu du site. Toutefois d'une manière générale, il est recommandé de la définir à une valeur comprise entre 48 h et un an.

Références[modifier | modifier le wikicode]