2013-07-10 2 views
0

내가 어떤 쿠키가 존재하는지 확인 내 vcl_recv에서 규칙을 원하는 존재, 그래서 항상 캐시 파일을 제공하는 경우 또한, 그러나 I를니스 항상 캐시는 특정 쿠키는

을 (의이 쿠키 VARNISH_USE_CACHE를 호출 할 때) 세션 쿠키를 확인하기 위해 실행 한 다음 (항상 아파치로 전달되는 경우) 실행되는 규칙이 있으므로 VARNISH_USE_CACHE가없는 경우이 규칙이 계속 실행되어야합니다.

쿠키를 확인한 다음 다른 쿠키를 확인하는 방법을 잘 모르겠습니다. 임시 변수에 쿠키를 할당하고 확인했습니다. 그러나 나는 내가 어떻게하면 vcl이 어떻게 작동 하는지를 이해하지 않아야한다.

여기 vcl_rec에 내 코드입니다 : 거기에, 더 VARNISH_USE_CACHE없는 대신 항상 req.http.Cookie에서 모든 쿠키를 경우

set req.http.tempCookie = ";" + req.http.Cookie; 
set req.http.tempCookie = regsuball(req.http.tempCookie, ";(VARNISH_USE_CACHE)=", "; \1="); 
set req.http.tempCookie = regsuball(req.http.tempCookie, ";[^ ][^;]*", ""); 
set req.http.tempCookie = regsuball(req.http.tempCookie, "^[; ]+|[; ]+$", ""); 

그래서 내가 기대하고있어 req.http.tempCookie는 비어있을 수 있습니다.

답변

0

아 그것을 밖으로 일 :

set req.http.tempCookie = ";" + req.http.Cookie; 
set req.http.tempCookie = regsuball(req.http.tempCookie, "; +", ";"); 
set req.http.tempCookie = regsuball(req.http.tempCookie, ";(VARNISH_USE_CACHE)=", "; \1="); 
set req.http.tempCookie = regsuball(req.http.tempCookie, ";[^ ][^;]*", ""); 
set req.http.tempCookie = regsuball(req.http.tempCookie, "^[; ]+|[; ]+$", ""); 
:

set req.http.tempCookie = regsuball(req.http.tempCookie, "; +", ";"); 

그래서 코드처럼 보이는이 줄을 잊으 셨나요