mod_expire(s) pour Apache et Lighttpd

Ce module, disponible pour Apache et Lighttpd, permet de rajouter des entetes HTTP indiquant le temps de vie de l'element qui est récupéré par le navigateur.

L'utilisation de mod_expire(s) permet alors de soulager la bande passante en faisant conserver par les clients (et les intermediaire de cache) l'element indiqué pendant un laps de temps donné. Toutefois sont utilisation n'est pas sans inconvenient, puisque si un navigateur garde des elements pendant 24H, il se peut qu'entretemps l'element ai changé sur le serveur.

Configuration sur Apache

Il suffit de rajouter dans un vhost l'element indiqué ici en exemple : (notez que mod_expires sur Apache comporte un “s” dans son nom).

<IfModule mod_expires.c>
        ExpiresActive on

        ExpiresByType text/css "access 1 days"
        ExpiresByType application/x-javascript "access 1 days"
        ExpiresByType text/javascript "access 1 days"
        ExpiresByType image/gif "access 1 days"
        ExpiresByType image/jpeg "access 1 days"
        ExpiresByType image/png "access 1 days"
</IfModule>

Nous indiquons ici que les mime-type “text/css”, “application/x-javascript”, “text/javascript”, “image/gif”, “image/jpeg”, et “image/png” de rajouter l'entete “a partir de l'accès, le temps de cache est d'une journée”.

Attention cette configuration “force” un “temps de vie” (ttl ou “max-age” dans le cas d'une entete http) L'on peut configurer mod_expire pour additionner la valeur déjà existante avec une valeur supplementaire, il faut pour cela ajouter la condition “plus” devant la valeur de “temps de vie”.

<IfModule mod_expires.c>
        ExpiresByType application/x-javascript "access plus 1 days"
</IfModule>

Il est possible de baser le “temps de vie” sur la modification du fichier (modified), mais dans le cas d'un fichier ancien peu modifié, la valeur du “temps de vie” deviens vite caduque.

<IfModule mod_expires.c>
        ExpiresByType application/x-javascript "modification plus 1 days"
</IfModule>

Il est possible de forcer une valeur par défaut pour tous contenu :

<IfModule mod_expires.c>
        ExpiresDefault "modification plus 1 days"
</IfModule>

Configuration sur Lighttpd

De la meme facon que nous activons mod_compress pour Lighttpd sur Lighttpd, nous activons mod_expire (notez l'absence du “s” dans ce “module”).

Activer mod_expire

server.modules              = (
        "mod_fastcgi",
[...]
        "mod_expires",
[...]
        "mod_cgi"
)

Configurer mod_expire

Tout comme mod_expires d'apache, la configuration est simple a mettre en place dans la configuration générale ou d'un vhost sur lighttpd :

   $HTTP["url"] =~ "(gif|png|jpg)$"{
      expire.url = ( "" => "access 6 hours" )
   }
   $HTTP["url"] =~ "(css|js)$"{
      expire.url = ( "" => "access 1 minutes" )
   }

   $HTTP["url"] =~ "monrepertoire"{
      expire.url = ( "" => "access 30 minutes" )
   }

Nous avons donc dans l'exemple une expiration a l'acces de 6H sur les gif, png et jpg, une expiration d'une minute sur les css et javascript, et sur toute url comprenant “monrepertoire” une expiration de 30 minutes des l'accès.

wiki/mod_expires.txt · Dernière modification: Friday 03 July 2009 par kathryl
Flux RSS du Blog Driven by DokuWiki Gentoo Powered Valid XHTML1.0 Powered by Apache PHP Powered Coffee Powered