vcl 해시를 사용하여 요청의 특정 헤더 값을 기반으로 개체의 여러 복사본을 캐싱하려고합니다. 한 번에 모두 어떻게 제거합니까?요청 헤더 값을 기반으로 니스 캐시 지우기
0
A
답변
1
내 대답은 당신이 정말로 PURGE
같이 제거하려는 가정에 기초하지 BAN
:
특정 헤더의 모든 가능한 값이 알려진 경우에, 당신은 사용자 정의 헤더 설정과 함께 다시 시작을 사용합니다. 논리는 다음
- 는
vcl_purge
에req.http.X-Custom == foo
return(purge)
- 와 객체에 대한
PURGE
요청을받은req.http.X-Custom = bar
을 설정/소개 이미 제거 된 값의 세트 도우미 헤더를 조정하고,return (restart)
결과적으로 Varnish는 모든 개체를 반복적으로 제거합니다.
이 접근 방식의 예는 complete Brotli VCL implementation에 있습니다.
그러나 특정 헤더의 값이 실제로 임의 인 경우 실제로는 PURGE
을 모두 동시에 사용할 수 없습니다. 이것을 필요로 할 경우 Vary: X-Custom
을 사용하여 바니시 (Varnish)가 이러한 모든 오브젝트를 다양한 변형으로 간주 할 수 있도록해야합니다. Vary
을 사용하면 헤더에서 해시 할 필요가 없으며 한 변형에서 PURGE
은 다른 모든 변형을 효과적으로 제거합니다.
Vary
은 훨씬 더 접근 방식이 좋습니다.