为服务器块中的特定位置配置 Nginx 代理微缓存
Configuring Nginx proxy microcache for a specific location within the server block
我有一个 Django 网站,每隔几秒就会发布新内容。
我网站主页上的授权用户登陆 /
,而未授权用户登陆 /unauth
。 /unauth
显示与 /
类似的内容,但没有任何个人详细信息。我的网站使用nginx(反向代理),gunicorn作为上游。
我正在尝试在 location/unauth
上实施 nginx microcaching,但到目前为止没有成功(/var/cache/nginx
中没有显示任何内容)。在 location/unauth
中添加 add_header X-Cache-Status $upstream_cache_status;
不会在响应中产生任何结果。这几乎就像 loction 块完全被忽略了(!)。
你能帮我解决这个问题吗?如果您想查看整个 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 响应 header 如下:
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 需要在 post 重定向上下文中。
我有一个 Django 网站,每隔几秒就会发布新内容。
我网站主页上的授权用户登陆 /
,而未授权用户登陆 /unauth
。 /unauth
显示与 /
类似的内容,但没有任何个人详细信息。我的网站使用nginx(反向代理),gunicorn作为上游。
我正在尝试在 location/unauth
上实施 nginx microcaching,但到目前为止没有成功(/var/cache/nginx
中没有显示任何内容)。在 location/unauth
中添加 add_header X-Cache-Status $upstream_cache_status;
不会在响应中产生任何结果。这几乎就像 loction 块完全被忽略了(!)。
你能帮我解决这个问题吗?如果您想查看整个 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 响应 header 如下:
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 需要在 post 重定向上下文中。