Zum Hauptinhalt springen

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