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

12

Le vernis est utilisé dans un site Web Wordpress.

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

Avec cette commande, je peux redémarrer Varnish pour tout le domaine:

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

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

Ex: www.foo.com/url_to_be_purged

J'ai essayé la commande précédente en la remplaçant par 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 HITen vernis.

Des idées sur la façon dont je peux y parvenir?

MISE À JOUR

Comme l'a suggéré 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 également essayé cette variante:

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 HITdans l'URL et les données ne sont pas mises à jour

rfc1484
la source
1
man, arrêtez d'utiliser le schéma (http: // ou https: // ou ftp: // ou autre) dans le nom d'hôte :) votre commande doit être: varnishadm -T: 6082 -S / etc / varnish / secret ban "req.http .host == www.foo.com && req.url == / url_to_be_purged "
ghloogh

Réponses:

20

Vous n'avez pas besoin de spécifier le schéma du nom d'hôte et vous pouvez utiliser une correspondance stricte au lieu de l'expression régulière:

varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret ban "req.http.host == example.com && req.url == /some/url/"
ghloogh
la source
1
L'autre réponse avait la citation au mauvais endroit. > varnishadm -T 127.0.0.1:6082 -S / etc / varnish / secret "ban req.url == / url_to_be_purged"
Jim Holmes
0

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.

Abhishek
la source
2
Cela n'ajoute rien d'autre sudoqu'à l'autre réponse. Cela pourrait être mieux en tant que commentaire.
Esa Jokinen