仅在设置 Cache-Control headers 时启用 UWSGI 缓存
Enable UWSGI caching only when Cache-Control headers are set
我想使用 Nginx 来缓存一个 Uwsgi 应用程序。该应用程序为某些请求设置 Cache-Control
header。 Nginx-cache 只应为这些请求启用并遵守 max-age
条件。
所以我正在尝试为上游未设置 Cache-Control
的请求设置 uwsgi_no_cache 1
。 uwsgi_no_cache 0
对于上游设置 Cache-Control
header.
的请求
但是,这不起作用:
set $no_cache 1;
if ($sent_http_cache_control) {
set $no_cache 0;
}
uwsgi_no_cache $no_cache;
问题出在 $sent_http_cache_control
,不幸的是它没有反映上游的 header 设置。
有没有办法在上游设置 Cache-Control
时仅在 Nginx 中启用缓存?
对于上游服务返回的headers,您需要使用$upstream_http_
前缀
https://nginx.org/en/docs/http/ngx_http_upstream_module.html#var_upstream_http_
所以你的情况应该是 $upstream_http_cache_control
我想使用 Nginx 来缓存一个 Uwsgi 应用程序。该应用程序为某些请求设置 Cache-Control
header。 Nginx-cache 只应为这些请求启用并遵守 max-age
条件。
所以我正在尝试为上游未设置 Cache-Control
的请求设置 uwsgi_no_cache 1
。 uwsgi_no_cache 0
对于上游设置 Cache-Control
header.
但是,这不起作用:
set $no_cache 1;
if ($sent_http_cache_control) {
set $no_cache 0;
}
uwsgi_no_cache $no_cache;
问题出在 $sent_http_cache_control
,不幸的是它没有反映上游的 header 设置。
有没有办法在上游设置 Cache-Control
时仅在 Nginx 中启用缓存?
对于上游服务返回的headers,您需要使用$upstream_http_
前缀
https://nginx.org/en/docs/http/ngx_http_upstream_module.html#var_upstream_http_
所以你的情况应该是 $upstream_http_cache_control