2013-09-25 3 views
4

nginx에서 add_header 지시문을 사용하면 헤더가 원본 서버에서 오는 응답에 추가됩니다.Nginx add_header 및 캐시 제어

오리진 서버가 cache-control public, max-age = 60을 리턴한다고 가정 해보십시오. 하지만이 같은 설정의 nginx 역방향 프록시 위치 :

add_header 캐시 제어 공공, 최대 - 나이 = 10

이 정확히 무엇입니까? 내가 생각할 수있는 두 가지 시나리오가 있습니다 :

1) Nginx는 원본 서버의 캐시 제어 헤더를 고려하여 만료 60 초로 캐시에 내용을 저장합니다. 그런 다음 클라이언트가 10 초 만료와 함께 해당 캐시에 자원을 저장하도록 덮어 쓴 헤더로 응답을 전달합니다.

또는 ..

2) Nginx에 먼저 응답 헤더를 덮어 다음이를 해석한다. 자원을 만료 10 초로 저장하고 클라이언트에 응답을 전달하며이 응답도 10 초 만료시 캐시됩니다.

답변

6

는 Nginx에 그냥 원본 서버 전에 헤더를 추가, 그래서 당신은해야합니다 :

cache-control: public, max-age=10 
cache-control: public, max-age=60 

를 원점 헤더는 Nginx에 헤더를 대체합니다.

해결책? 원점에서 헤더를 대체하거나 지우려면 more_set_headers 및 more_clear_headers 모듈이있는 nginx v1.4.3을 사용하십시오.

here에서 모듈을 다운로드 할 수 있습니다.
Here nginx 1.4.3을 다운로드하고 설치하는 방법.
Here 지침을 사용하는 방법.

+0

이 문제를 해결해 주셔서 감사합니다. –

+0

당신은 환영합니다;) – nlopez

+0

내가 필요한 것. 나는 debian squeezy에서 nginx를 사용하고 있었고 그것을 작동 시키도록 strugling하고있었습니다. – alfredocambera