Lighttpd & mod_expire
Ayant récemment mis en place un serveur "statique" avec lighttpd (prononcé lighty) chargé de délivrer uniquement les images de divers sites web et newsletters, j'ai eu envie comme à mon habitude avec apache2 ou nginx d'optimiser les performances.
Comment ? Grâce à mod_expire entre autre (qui au passage existe et porte le même nom sur apache) ...
Pour être bref, mod_expire permet d'informer le navigateur du client que le contenu delivré est valable pendant une durée définie. Tant que la durée n'est pas expirée, le navigateur ne re-télécharge pas le contenu et utilise celui qu'il a dans son cache. Cela épargne donc une requête HTTP par contenu non re-téléchargé. Côté client l'affichage est plus rapide car le contenu sera lu instantanément via le cache de son browser.
Pour l'activer sur lighty, décommenter la ligne dans votre fichier lighttpd.conf
server.modules
= (
...
"mod_expire",
...
)Dans ce même fichier, ou dans un fichier externe (n'oublier pas de l'inclure) configurer vos régles d'expiration comme bon vous semble :
# plus
$HTTP["url"] =~ "\.(jpg|gif|png|css|js)$" {
expire.url = ( "" => "access 15 days" )
}
Si vous ne faite pas de load balancing entre différents serveurs délivrant le même contenu statique, ajouter des ETAG à vos fichiers :
# ETags etag.use-inode = "enable"etag.use-mtime = "enable"etag.use-size = "enable"static-file.etags = "enable"Pour plus d'informations à ce sujet n'hésitez-pas à consulter l'article "Désactiver les ETags?" de l'excellent blog d'Éric Daspet dedié à la performance web.