%20vor%C3%BCbergehend%20zu%20deaktivieren.png)
Wie erkennt man Lack am einfachsten:
Hey Varnish-Prozesse, bitte löscht euren Cache. Und bitte speichert jetzt auch gar nichts im Cache. Ich möchte, dass ihr alle Anfragen jetzt einfach direkt an das Backend weiterleitet. Ich sage euch gleich Bescheid, wenn ihr wieder zum Normalbetrieb zurückkehren sollt.
Ich betreibe einige Debugging- und Iterationsvorgänge auf einer Website, bin es aber leid, zwischen jeder Änderung und neuen Anforderung ständig meinen Cache mit diesem Befehl zu leeren.
varnishadm 'ban req.url ~ "."'
Außerdem ist dies eine ziemlich komplexe Varnish-Konfiguration mit vielen Backends für viele unterschiedliche Websites und Domänen.
Ich möchte nur den einfachsten Befehl, der Varnish anweist, alle Anfragen vorübergehend an das Backend zu erzwingen.
# this command does not exist
varnishadm 'caching-pause req.url ~ "."'
Und der entsprechende einfache Befehl, um Varnish wieder in den Normalbetrieb zu versetzen.
# this command also does not exist
varnishadm 'caching-resume req.url ~ "."'
Gibt es eine einfache Möglichkeit, Varnish anzuweisen, vorübergehend alles im Cache zu beenden?
Antwort1
Stellen Sie sicher, dass der folgende VCL-Code enthalten ist /etc/varnish/no-cache.vcl
:
vcl 4.0;
backend default {
.host = "your-host";
.port = "your-port";
}
sub vcl_recv {
return(pass);
}
Laden Sie dann die VCL wie folgt:
varnishadm vcl.load nocache /etc/varnish/no-cache.vcl
Wenn Varnish den Cache umgehen soll, führen Sie den folgenden Befehl aus:
varnishadm vcl.use nocache
Wenn Sie zum Normalbetrieb zurückkehren möchten und Ihre reguläre VCL den Namen hat boot
, verwenden Sie einfach den folgenden Befehl:
varnishadm vcl.use boot
Mit können Sie
varnishadm vcl.list
die Liste der geladenen VCL-Dateien anzeigen und feststellen, welche aktiv ist.