2012-01-19 2 views
3

저는 현재 Varnish (v3) 설정 작업을하고 있지만, 다음 사항에 대한 조언이 있다면 궁금합니다.PHP 및 바니시를 사용하는 고객 헤더

PHP의 Header() 함수를 사용하여 사용자 정의 헤더를 설정하려고합니다 (예 : Test : CustomHeader). 궁극적 인 목적은 브라우저가이 경우 쇼핑 바구니에 무언가를 추가하지 않으면 캐시 된 페이지를 제공 할 수 있도록하는 것입니다. 나는 VCL 설정 파일에서 다음과 같이 할 수 있다고 생각했다.

if (bereq.http.Test ~ "CustomHeader") { 
    set beresp.ttl = 0s; 
    return (hit_for_pass); 
} 

그러나 이것은 항상 false \ no로 평가된다. 설정 한 경우

if (bereq.http.Test != "CustomHeader") { 
    set beresp.ttl = 0s; 
    return (hit_for_pass); 
} 

그런 다음 hit_for_pass가 항상 트리거되어 헤더 설정이 잘못되었다고 생각합니다. PHP 헤더가 캐시의 전체 지점으로 인해 설정되지 않기 때문에 생각할 수 있지만 varnishlog의 헤더를 검사하면 고객 헤더가 표시되는데 이는 혼란 스럽습니다! 또한 해당 페이지에 액세스하면 캐시 히트가 항상 수행됩니다. 누구나 이런 종류의 헤더 조작에 관한 조언이나 조언이 있습니까? 많은 감사합니다. -B

답변

2

이렇게 맞춤 헤더를 사용하는 것은 좋지 않습니다. 많은 프록시는 인식하지 못하는 헤더를 제거하므로 원하는 방식으로 작동하더라도이 기능에 의존 할 수 없습니다.

쿠키가 디자인 된 쿠키입니다. 쿠키 대신 사용할 수 있습니다. 이것에 대한

+0

많은 감사합니다! 나는 쿠키를 사용하려고 시도했지만 작동시키지 못했지만 더 열심히 노력해야 할 것 같아 :) 감사합니다. – flukeflume

+0

@DaveRandom - 사용자의 위치가 http://stackoverflow.com/에서 말하는 것과 반대입니다. 질문/1810915 - 사용자 정의 헤더를 제거하는 프록시의 예를 자세히 설명하고 제공 할 수 있습니까? 감사! –