正在Wordpress网站中使用光油。
我想清除Varnish的单个url,而不是整个域名。
使用这个命令,我可以重新启动整个域的清漆:
varnishadm -T :6082 -S /etc/varnish/secret 'ban req.http.host ~ \"http://www.foo.com\" && req.url ~ \"^/\"'
不过,我想只清除一个url的清漆。
例如: www.foo.com/url_to_be_purged
我已经尝试了以前的命令将其replace为单个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 。
任何想法,我怎么能做到这一点?
UPDATE
正如build议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 ,并且数据不会更新
你不需要为主机名指定scheme,你可以使用严格匹配而不是正则expression式:
varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret ban "req.http.host == example.com && req.url == /some/url/"
您可以尝试以下方法:
sudo varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 "ban req.url ~ \"http://example.com/testimage.png$\""
为我工作。