Varnish-Cache: Cache-Kontrolle per HTTP
Um den Cache von Varnish selber verwalten zu können, bieten wir eine HTTP-API an. Diese erlaubt es einzelne Seiten oder ganze Bereiche zu invalidieren oder einzelne Seiten im Hintergrund zu aktualisieren.
Um die API vor Missbrauch zu schützen, ist der Zugriff per ACL auf bestimmte IP-Adressen limitiert.
Nachfolgend sind die drei Grundoperationen beschrieben.
Purge
Mit dem Purge-Befehl können einzelne Seiten, die sich im Cache befinden, invalidiert werden. Beim nächsten Zugriff auf diese Seite wird sie neu vom Backend geladen und im Cache gespeichert.
Mit folgendem Befehl wird diese URL im Cache invalidiert:
curl -X PURGE -D - http//www.nine.ch/site/to/purge.html
Ban
Mit dem Ban-Befehl können Sie nicht nur eine einzelne Seite sondern ganze Bereiche im Cache invalidieren. Sowohl den Hostnamen wie auch den Pfad kann man dabei per Regex definieren.
Mit folgendem Befehl werden alle Seiten unter /images/ auf dem Server www.nine.ch invalidiert:
curl -X BAN \
-H 'X-Ban-Host: www.nine.ch' \
-H 'X-Ban-Url: /images/.*' \
-D - http://127.0.0.1/
Refresh
Mit dem Refresh-Befehl können einzelne Seiten, die sich im Cache befinden, im Hintergrund erneuert werden. Alle anderen Clients bekommen bis zur Aktualisierung im Cache weiterhin den alten Inhalt ausgeliefert.
Mit folgendem Befehl wird diese URL im Cache erneuert:
curl -X REFRESH -D - http//www.nine.ch/site/to/purge.html