Notez cet article :
Cet article vous a été utile ?
Oui
Non
Vous avez noté 0 étoile(s)
Sommaire
Procédure
Dans cette documentation, nous allons vous expliquer pas à pas comment obliger Varnish et les navigateurs à conserver vos ressources en cache, même quand ceux‑ci envoient des requêtes Pragma: no‑cache ou Cache‑Control: no-cache.
Les formules d’hébergement mutualisé et cPanel/VPS gérés de LWS reposent sur la pile :
Navigateur ⇄ NGINX (SSL + HTTP/2) ⇄ Varnish Cache ⇄ Apache/PHP-FPM
Lorsque tout est correctement configuré, Varnish peut livrer jusqu’à 1000 fois plus vite qu’un accès direct à PHP, tout en soulageant le CPU du serveur.
Élément | Impact sur la cache | Comment l’influencer |
Méthode | Seuls GET et HEAD sont éligibles | Éviter les POST pour les pages publiques |
En‑têtes réponse Cache-Control, Expires, Pragma | Déterminent la durée et la portée | Régler via .htaccess (voir §3) |
Cookies / Set-Cookie | Un cookie présent = pas de mise en cache par défaut | Supprimer ou neutraliser les cookies inutiles |
Status HTTP | 200, 203, 301, 302, 404, 410 sont cachables | Pas d’action, mais éviter les 500 ! |
Trucs et astuces Varnish ignore par défaut le Cache-Control: no-cache envoyé par le navigateur pour les fichiers statiques, mais respecte le "revalidation logic" si l’objet est déjà en cache.
Activez le module mod_headers (c’est le cas par défaut chez LWS) puis placez le snippet suivant où vous voulez :
<IfModule mod_headers.c>
Header set Cache-Control "public, max-age=3600, s-maxage=3600, stale-while-revalidate=60, stale-if-error=86400"
Header set Expires "Thu, 31 Dec 2037 23:55:55 GMT"
</IfModule>
Mettre le même fichier .htaccess dans le dossier "/images/" applique la règle uniquement au dossier "images".
<IfModule mod_headers.c>
<FilesMatch "\.(css|js|png|jpg|webp)$">
Header set Cache-Control "public, max-age=2592000, s-maxage=2592000, immutable"
</FilesMatch>
</IfModule>
immutable : indique au navigateur qu’aucune revalidation n’est nécessaire tant que l’objet n’a pas expiré ; idéal pour les fichiers versionnés (style.483bf.css).
3.3. Cache court pour HTML
<FilesMatch "\.(html?|htm)$">
Header set Cache-Control "public, max-age=300, s-maxage=600, must-revalidate"
</FilesMatch>
Expire après 5 min côté client et 10 min côté Varnish, puis revalidation obligatoire.
Cas réel | Fragment de .htaccess | Pourquoi ? |
Landing page mise à jour toutes les heures | max-age=600, s-maxage=1200 | Les visiteurs ont une donnée « presque live » sans saturer PHP |
CSS/JS versionnés | max-age=31536000, immutable | Trafic quasi nul sur le serveur, chargement instantané |
Images produits e‑commerce | max-age=604800 | Réduit le TTFB, accélère le catalogue |
Back‑office / wp-admin | no-store, private | Évite de mettre des données sensibles dans la cache partagée |
curl -X PURGE -H "Host: exemple.com" https://exemple.com/chemin/ressource.jpg
ban req.http.host == "exemple.com" && req.url ~ "/images/"
curl -I https://exemple.com/style.css
Regardez :
Avec Chrome/Edge : DevTools > Network > Disable cache peut simuler un premier visiteur.
✅ Votre cache Varnish est maintenant sous contrôle !
Notez cet article :
Cet article vous a été utile ?
Oui
Non
1mn de lecture
Comment accéder aux statistiques de visite du site ?
1mn de lecture
Comment activer le Mod_PageSpeed sur mon site ?
1mn de lecture
Comment utiliser les modules de cache sur LWSPanel ?
3mn de lecture
Accélérer la vitesse de votre site avec LWS Cache