2016-09-28 2 views
0

서브 루틴을 통해 변수를 전달하는 방법은 무엇입니까?요청에 따라 바니시에 변수 전달

vcl 4.0; 

sub vcl_recv { 
    set req.http.x-tracking-first-request = "true"; 
} 


sub vcl_deliver { 

    if (resp.http.x-tracking-first-request) { 
     # do something 
    } 
} 

가 현재 내 백엔드에 매개 변수, response.add_header("x-tracking-first-request", response.get_header("x-tracking-first-request")) 같은 즉, 무언가를 처리 할 수 ​​있습니다

나는 다음 default.vcl 있습니다. 이것은 마다 클라이언트가이 "리플렉션"논리를 구현해야 함을 의미합니다.

왜? Uppon 첫 번째 요청 나중에 다른 사용자를 식별하기 위해 uuid를 생성하려고합니다. 따라서 모든 요청/응답주기에 걸쳐 uuid를 어떻게 든 저장해야합니다.

답변

1

당신은 단순히 vcl_deliver 동안 req 개체를 사용해야합니다

vcl 4.0; 

sub vcl_recv { 
    set req.http.x-tracking-first-request = "true"; 
} 

sub vcl_deliver { 
    if (req.http.x-tracking-first-request) { 
     # do something 
    } 
} 
+0

대단히 감사합니다! 내 헤더 변수에 오타가 있었기 때문에 req-object에 액세스 할 수없는 것처럼 보였습니다. – anopheles

관련 문제