Purgue el caché de barniz para una única url usando varnishadm

12

Varnish se está utilizando en un sitio web de Wordpress.

Me gustaría purgar Varnish para una sola URL en lugar de un dominio completo.

Con este comando puedo reiniciar Varnish para todo el dominio:

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

Sin embargo, me gustaría purgar el barniz solo para una única url.

Ex: www.foo.com/url_to_be_purged

He intentado el comando anterior reemplazándolo con la única URL:

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

Pero no funcionó, la URL todavía estaba HITen barniz.

¿Alguna idea de cómo puedo lograr esto?

ACTUALIZAR

Como sugirió la respuesta de ghloogh, probé el siguiente comando:

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"

También probé esta variación:

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

Pero todavía recibo un HITen la URL y los datos no se actualizan

rfc1484
fuente
1
hombre, deja de usar el esquema (http: // o https: // o ftp: // u otro) en el nombre de host :) tu comando debe ser: varnishadm -T: 6082 -S / etc / varnish / secret ban "req.http .host == www.foo.com && req.url == / url_to_be_purged "
ghloogh

Respuestas:

20

No es necesario que especifique el esquema para el nombre de host y puede usar una concordancia estricta en lugar de expresiones regulares:

varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret ban "req.http.host == example.com && req.url == /some/url/"
ghloogh
fuente
1
La otra respuesta tenía la cita en el lugar equivocado. > varnishadm -T 127.0.0.1:6082 -S / etc / varnish / secret "ban req.url == / url_to_be_purged"
Jim Holmes
0

Puedes probar lo siguiente:

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

trabajó para mi.

Abhishek
fuente
2
Esto no agrega nada más sudoque la otra respuesta. Esto podría ser mejor como comentario.
Esa Jokinen