我有一个Django网站,每隔几秒发布新的内容。
我网站主页上的授权用户登陆/
,而未经授权的用户login/unauth
。 /unauth
显示与/unauth
相似的内容,但没有任何个人详细信息。 我的网站使用nginx(反向代理)与gunicorn作为上游。
我试图在location/unauth
上实现nginx location/unauth
,但到目前为止还是不成功(在/var/cache/nginx
什么也没有显示)。 添加add_header X-Cache-Status $upstream_cache_status;
在location/unauth
在响应中根本不产生任何东西。 这几乎就像是完全被忽视的(!)。
你能帮我解决这个问题吗? 让我知道如果你想看到整个nginx.conf。
我在我的nginxconfiguration文件中添加了以下内容:
#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
缓存不工作的原因是因为内部重定向到@http_proxy_to_app。 proxy_cache需要在后重定向上下文中。