Varnish используется на веб-сайте Wordpress.
Я хочу удалить Varnish для одного URL, а не для всего домена.
С помощью этой команды я могу перезапустить Varnish для всего домена:
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
Я пробовал предыдущую команду, заменив ее единственным URL:
varnishadm -T :6082 -S /etc/varnish/secret 'ban req.http.host ~ \"http://www.foo.com/url_to_be_purged\" && req.url ~ \"^/\"'
Но это не сработало, URL-адрес все еще был 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"
Но я все еще получаю HIT
в URL и данные не обновляются
Вам не нужно указывать схему для имени хоста, и вы можете использовать строгое соответствие вместо регулярного выражения:
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$\""
работал у меня.