Procédure
In dieser Dokumentation erklären wir Ihnen Schritt für Schritt, wie Sie Varnish und die Browser dazu zwingen, Ihre Ressourcen im Cache zu behalten, selbst wenn diese Anfragen Pragma: no-cache oder Cache-Control: no-cache senden.
Die von LWS verwalteten Shared-Hosting- und cPanel/VPS-Pakete basieren auf dem Stack:
Browser ⇄ NGINX (SSL + HTTP/2) ⇄ Varnish Cache ⇄ Apache/PHP-FPM
Wenn alles korrekt konfiguriert ist, kann Varnish bis zu 1000-mal schneller liefern als ein direkter Zugriff auf PHP und gleichzeitig die CPU des Servers entlasten.
| Element | Auswirkung auf den Cache | Wie man es beeinflusst |
| Methode | Nur GET und HEAD sind zulässig | POST für öffentliche Seiten vermeiden |
| Antwort-Header Cache-Control, Expires, Pragma | Bestimmen Dauer und Umfang | Über .htaccess setzen (siehe §3) |
| Cookies / Set-Cookie | Ein vorhandenes Cookie = standardmäßig kein Caching | Unnötige Cookies entfernen oder neutralisieren |
| HTTP-Status | 200, 203, 301, 302, 404, 410 sind cachefähig | Keine Aktion, aber 500er vermeiden! |
Trucs et astuces Varnish ignoriert standardmäßig das vom Browser gesendete Cache-Control: no-cache für statische Dateien, respektiert aber die "revalidation logic", wenn das Objekt bereits im Cache ist.
Aktivieren Sie das Modul mod_headers (das ist bei LWS standardmäßig der Fall) und fügen Sie dann den folgenden Snippet ein, wo Sie möchten:
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"
Wenn Sie dieselbe .htaccess-Datei im Verzeichnis "/images/" ablegen, gilt die Regel nur für das Verzeichnis "images".
Header set Cache-Control "public, max-age=2592000, s-maxage=2592000, immutable"
immutable : weist den Browser an, dass keine Revalidierung notwendig ist, solange das Objekt nicht abgelaufen ist; ideal für versionierte Dateien (style.483bf.css).
3.3. Kurzer Cache für HTML
Header set Cache-Control "public, max-age=300, s-maxage=600, must-revalidate"
Läuft clientseitig nach 5 Min. und bei Varnish nach 10 Min. ab, danach ist eine Revalidierung obligatorisch.
| Praxisfall | .htaccess-Ausschnitt | Warum? |
| Landingpage wird stündlich aktualisiert | max-age=600, s-maxage=1200 | Besucher erhalten nahezu aktuelle Daten, ohne PHP zu überlasten |
| Versionierte CSS/JS-Dateien | max-age=31536000, immutable | Nahezu kein Traffic auf dem Server, sofortiges Laden |
| Produktbilder im E-Commerce | max-age=604800 | Reduziert die TTFB, beschleunigt den Katalog |
| Backoffice / wp-admin | no-store, private | Verhindert, dass sensible Daten im Shared Cache landen |
Von Ihrem Hosting aus (PHP-Skript Ihrer Website, Cron-Job oder SSH-Terminal) benötigt das Leeren des Varnish-Caches kein Token:
curl -X PURGE https://beispiel.com/pfad/ressource.jpg
curl -X PURGE -H 'X-Purge-Method: regex' 'https://beispiel.com/images/.*'
curl -X FULLPURGE https://beispiel.com
$ch = curl_init('https://beispiel.com/pfad/seite.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 verweigert
curl_close($ch);Ein vollständiges Skript, bereit für einen Cron-Job, wird in der Hilfe Die Geschwindigkeit Ihrer Website mit Fastest Cache erhöhen angeboten. Sie können den Cache auch über Ihr Panel mit der Schaltfläche „Cache leeren“ von Fastest Cache leeren.
curl -I https://beispiel.com/style.cssAchten Sie auf:
Mit Chrome/Edge: DevTools > Network > Disable cache kann einen Erstbesucher simulieren.
✅ Ihr Varnish-Cache ist jetzt unter Kontrolle!
Stellen Sie sie dem LWS-Team und der Community. Die Antwort wird nach Moderation veröffentlicht.