Leeren Sie den Lack-Cache für eine einzelne URL mithilfe von varnishadm

12

Lack wird in einer Wordpress-Website verwendet.

Ich möchte Varnish für eine einzelne URL anstelle einer ganzen Domain löschen.

Mit diesem Befehl kann ich Varnish für die gesamte Domain neu starten:

varnishadm -T :6082 -S /etc/varnish/secret 'ban req.http.host ~ \"http://www.foo.com\" && req.url ~ \"^/\"'

Allerdings möchte ich Lack nur für eine einzige URL löschen.

Ex: www.foo.com/url_to_be_purged

Ich habe versucht, den vorherigen Befehl durch die einzelne URL zu ersetzen:

varnishadm -T :6082 -S /etc/varnish/secret 'ban req.http.host ~ \"http://www.foo.com/url_to_be_purged\" && req.url ~ \"^/\"'

Aber es hat nicht funktioniert, die URL war immer noch HITin Lack.

Irgendwelche Ideen, wie ich das erreichen kann?

AKTUALISIEREN

Wie von Ghloogh vorgeschlagen, habe ich den folgenden Befehl ausprobiert:

varnishadm -T :6082 -S /etc/varnish/secret ban "req.http.host == http://www.foo.com && req.url == http://www.foo.com/url_to_be_purged"

Ich habe auch diese Variante ausprobiert:

varnishadm -T :6082 -S /etc/varnish/secret ban "req.http.host == http://www.foo.com && req.url == /url_to_be_purged"

Aber ich bekomme immer noch eine HITin der URL und die Daten werden nicht aktualisiert

rfc1484
quelle
1
Mann, hör auf, Schema (http: // oder https: // oder ftp: // oder andere) im Hostnamen zu verwenden :) Dein Befehl sollte lauten: varnishadm -T: 6082 -S / etc / varnish / secret ban "req.http .host == www.foo.com && req.url == / url_to_be_purged "
ghloogh

Antworten:

20

Sie müssen kein Schema für den Hostnamen angeben und können statt Regex auch eine strikte Übereinstimmung verwenden:

varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret ban "req.http.host == example.com && req.url == /some/url/"
ghloogh
quelle
1
Die andere Antwort hatte das Zitat an der falschen Stelle. > varnishadm -T 127.0.0.1:6082 -S / etc / varnish / secret "Ban req.url == / url_to_be_purged"
Jim Holmes
0

Sie können Folgendes versuchen:

sudo varnishadm -S /etc/varnish/secret  -T 127.0.0.1:6082 "ban req.url ~ \"http://example.com/testimage.png$\""

arbeitete für mich.

Abhishek
quelle
2
Dies fügt nichts sudoanderes als die andere Antwort hinzu. Dies könnte als Kommentar besser sein.
Esa Jokinen