Procédure
I denna dokumentation kommer vi steg för steg att förklara hur du får Varnish och webbläsarna att behålla dina resurser i cache, även när de skickar begäranden Pragma: no‑cache eller Cache‑Control: no-cache.
De delade hostingpaketen och de hanterade cPanel/VPS-lösningarna från LWS bygger på stacken:
Webbläsare ⇄ NGINX (SSL + HTTP/2) ⇄ Varnish Cache ⇄ Apache/PHP-FPM
När allt är korrekt konfigurerat kan Varnish leverera upp till 1000 gånger snabbare än direkt åtkomst till PHP, samtidigt som serverns CPU belastas mindre.
| Element | Påverkan på cachen | Hur man påverkar det |
| Metod | Endast GET och HEAD är giltiga | Undvik POST för offentliga sidor |
| Svarshuvuden Cache-Control, Expires, Pragma | Bestämmer varaktighet och omfattning | Ställ in via .htaccess (se §3) |
| Cookies / Set-Cookie | En cookie närvarande = ingen cachelagring som standard | Ta bort eller neutralisera onödiga cookies |
| HTTP-status | 200, 203, 301, 302, 404, 410 kan cachas | Ingen åtgärd, men undvik 500! |
Trucs et astuces Varnish ignorerar som standard Cache-Control: no-cache som skickas av webbläsaren för statiska filer, men respekterar "revalidation logic" om objektet redan finns i cache.
Aktivera modulen mod_headers (detta är standard hos LWS) och placera sedan följande snippet där du vill:
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"
Om samma .htaccess-fil placeras i mappen "/images/" tillämpas regeln endast på mappen "images".
Header set Cache-Control "public, max-age=2592000, s-maxage=2592000, immutable"
immutable : indikerar för webbläsaren att ingen revalidering behövs så länge objektet inte har gått ut; perfekt för versionerade filer (style.483bf.css).
3.3. Kort cache för HTML
Header set Cache-Control "public, max-age=300, s-maxage=600, must-revalidate"
Upphör efter 5 min på klientsidan och 10 min i Varnish, därefter obligatorisk revalidering.
| Verkligt fall | .htaccess-fragment | Varför? |
| Landningssida uppdateras varje timme | max-age=600, s-maxage=1200 | Besökare får nästan live-data utan att överbelasta PHP |
| Versionerade CSS/JS-filer | max-age=31536000, immutable | Nästan ingen trafik till servern, omedelbar laddning |
| Produktbilder för e‑handel | max-age=604800 | Minskar TTFB, snabbar upp katalogen |
| Back‑office / wp-admin | no-store, private | Undviker att lagra känsliga uppgifter i den delade cachen |
Från ditt webbhotell (PHP-script på din webbplats, Cron-jobb eller SSH-terminal) kräver rensning av Varnish-cachen ingen token:
curl -X PURGE https://exemple.com/chemin/ressource.jpg
curl -X PURGE -H 'X-Purge-Method: regex' 'https://exemple.com/images/.*'
curl -X FULLPURGE https://exemple.com
$ch = curl_init('https://exemple.com/chemin/page.html');
curl_setopt_array($ch, [CURLOPT_CUSTOMREQUEST => 'PURGE', CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 20]);
curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 200 : cache purge ; 405 : purge refusee
curl_close($ch);Ett komplett script, redo för ett Cron-jobb, finns i hjälpen Accélérer la vitesse de votre site avec Fastest Cache. Du kan också rensa cachen från din panel med knappen « Purger le cache » i Fastest Cache.
curl -I https://exemple.com/style.cssTitta på:
Med Chrome/Edge: DevTools > Network > Disable cache kan simulera en förstagångsbesökare.
✅ Din Varnish-cache är nu under kontroll!
Ställ den till LWS-teamet och communityn. Svaret publiceras efter moderering.