web-dev-qa-db-ja.com

varnishadmを使用して単一のURLのワニスキャッシュを削除する

ワニスは、Wordpress Webサイトで使用されています。

ドメイン全体ではなく、単一のURLのVarnishをパージしたいと思います。

このコマンドを使用して、ドメイン全体でVarnishを再起動できます。

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

ただし、1つのURLのワニスのみをパージしたいと思います。

例:www.foo.com/url_to_be_purged

上記のコマンドを単一のURLに置き換えてみました。

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

しかし、それは機能しませんでした。URLはまだVarnishのHITでした。

どうすればこれを達成できるでしょうか?

[〜#〜]更新[〜#〜]

Ghlooghの答えが示唆されているように、私は次のコマンドを試しました:

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"

私もこのバリエーションを試しました:

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

しかし、まだURLにHITが含まれており、データは更新されません

12
rfc1484

ホスト名のスキームを指定する必要はなく、正規表現の代わりに完全一致を使用できます。

varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret ban "req.http.Host == example.com && req.url == /some/url/"
20
ghloogh

以下を試すことができます。

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

私のために働いた。

0
Abhishek