varnishadm을 사용하여 단일 URL에 대한 니스 캐시 제거


12

바니시는 Wordpress 웹 사이트에서 사용되고 있습니다.

전체 도메인 대신 단일 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

이전 명령을 단일 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"

하지만 여전히 HITURL에 들어가고 데이터가 업데이트되지 않습니다


1
man, hostname에서 스키마 (http : // 또는 https : // 또는 ftp : // 또는 기타) 사용 중지 :) 명령은 다음과 같아야합니다. varnishadm -T : 6082 -S / etc / varnish / secret ban "req.http .host == www.foo.com && req.url == / url_to_be_purged "
ghloogh

답변:


20

호스트 이름에 스키마를 지정할 필요가 없으며 정규 표현식 대신 엄격한 일치를 사용할 수 있습니다.

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

1
다른 대답은 잘못된 장소에서 인용했습니다. > varnishadm -T 127.0.0.1:6082 -S / etc / varnish / secret "ban req.url == / url_to_be_purged"
Jim Holmes

0

다음을 시도 할 수 있습니다.

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

나를 위해 일했다.


2
이것은 sudo다른 답변 외에 아무것도 추가하지 않습니다 . 이것은 의견으로 더 나을 수 있습니다.
Esa Jokinen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.