web-dev-qa-db-fra.com

Purger le cache de vernis pour une seule URL à l'aide de vernis

Le vernis est utilisé dans un Wordpress site Web.

Je voudrais purger le vernis pour une seule URL au lieu d'un domaine entier.

Avec cette commande, je peux redémarrer vernis pour l'ensemble du domaine:

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

Cependant, je voudrais purger le vernis que pour une seule URL.

Ex: www.foo.com/url_to_be_purged

J'ai essayé la commande précédente la remplaçant avec l'URL unique:

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

Mais cela n'a pas fonctionné, l'URL était toujours un HIT en vernis.

Des idées de Comment puis-je y parvenir?

MISE À JOUR

Comme suggère la réponse de Ghloogh, j'ai essayé la commande suivante:

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"

J'ai aussi essayé cette variation:

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

Mais je reçois toujours un HIT dans l'URL et les données ne sont pas mises à jour

12
rfc1484

Vous n'avez pas besoin de spécifier un système de nom d'hôte et vous pouvez utiliser une correspondance stricte au lieu de regex:

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

Vous pouvez essayer ce qui suit:

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

travaillé pour moi.

0
Abhishek