2017-02-05 8 views
2

몇 초마다 새로운 콘텐츠가 게시되는 장고 웹 사이트가 있습니다.서버 블록 내의 특정 위치에 대한 Nginx 프록시 마이크로 캐시 구성

내 웹 사이트의 홈페이지에있는 승인 된 사용자는 /이고 승인되지 않은 사용자는 /unauth입니다. /unauth/과 유사한 콘텐츠를 표시하지만 개인 정보는 표시하지 않습니다. 내 웹 사이트는 gungin을 업스트림으로 nginx (리버스 프록시)를 사용합니다.

nginx microcachinglocation/unauth에 구현하려하지만 지금까지 성공하지 못했습니다 (/var/cache/nginx에 표시되지 않음). location/unauthadd_header X-Cache-Status $upstream_cache_status;을 추가해도 응답에 아무 것도 나오지 않습니다. 거의 loption 블록이 완전히 무시되는 것과 같습니다 (!).

문제를 해결하도록 도와 줄 수 있습니까? 전체 nginx.conf를보고 싶다면 알려 주시기 바랍니다.

다음과 HTTP 응답 헤더 http://example.com/unauth/에서 생산되는
#outside the server block 
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=100m inactive=6m; 

    #inside the server block 
    location /unauth { 
     add_header X-Cache-Status $upstream_cache_status; 
     proxy_cache my_cache; 
     proxy_cache_lock on; 
     proxy_cache_valid 200 1s; 
     proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; 

     proxy_buffering on; 
     proxy_buffers 24 4k; 
     proxy_buffer_size 2k; 
     proxy_busy_buffers_size 8k; 

     try_files $uri @http_proxy_to_app; 
    } 

가 될 때 :

Status:    HTTP/1.1 200 OK 
Server:    nginx 
Date:    Sun, 05 Feb 2017 00:10:03 GMT 
Content-Type:  text/html; charset=utf-8  
Transfer-Encoding: chunked 
Connection:   close 
Vary:    Accept-Encoding 
Expires:   Sun, 05 Feb 2017 00:10:13 GMT 
Vary:    Cookie 
Last-Modified:  Sun, 05 Feb 2017 00:10:03 GMT 
Cache-Control:  max-age=10 
X-Frame-Options: SAMEORIGIN 
Content-Encoding: gzip 
+0

위치 블록에'add_header X-Cache-Status $ upstream_cache_status; '를 추가하고 요청을 다시 실행할 수 있습니까? 그러면 요청이 캐시에 있는지 여부에 대한 정보가 제공됩니다. –

+1

www-data : www-data로 변경해보십시오. @http_proxy_to_app에 대한 내부 리디렉션을 수행 중이기 때문일 수도 있습니다. 테스트로 대신 캐시 구성을 해당 블록에 추가 할 수 있습니까? –

답변

1

이유 캐시을 얻지 못한


나는 나의의 nginx 설정 파일에 다음을 추가 한 @http_proxy_to_app에 대한 내부 리디렉션 때문에 작업하지 못했습니다. proxy_cache는 사후 리디렉션 컨텍스트에 있어야합니다.

+0

빠른 설명. uri에 인수 또는 매개 변수 (예 :'http : //example.com/unauth/? page = 2 # section18')가 포함되어 있으면 nginx.conf의 'location/unauth'위치 블록도 해당 URI를 캡처합니까? –