我有一個Django網站,每隔幾秒發佈一個新內容。配置服務器塊內的特定位置的Nginx代理微庫緩存
我網站主頁上的授權用戶登陸/
,而未經授權的用戶登錄/unauth
。 /unauth
顯示與/
類似的內容,但沒有任何個人詳細信息。我的網站使用nginx(反向代理)和gunicorn作爲上游。
我試圖在location/unauth
上實現nginx microcaching,但迄今爲止一直不成功(在/var/cache/nginx
中沒有任何顯示)。在location/unauth
中添加add_header X-Cache-Status $upstream_cache_status;
在響應中根本不產生任何內容。這幾乎就像完全忽略了(lo)塊。
你能幫我解決這個問題嗎?如果您想查看整個nginx.conf,請告訴我。
我已經添加在我的nginx的配置文件中的以下內容:
#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;
}
從http://example.com/unauth/
正在生產的HTTP響應報頭如下:
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
您可以在位置塊中添加「add_header X-Cache-Status $ upstream_cache_status;'並重新運行請求嗎?這將提供一些信息,說明請求是否在緩存中。 –
嘗試將其更改爲www-data:www-data。這可能也是因爲你正在執行內部重定向到@http_proxy_to_app。作爲一個測試,你可以添加緩存配置到該塊嗎? –