Nginx 仅在设置缓存控制标头时启用UWSGI缓存

Nginx 仅在设置缓存控制标头时启用UWSGI缓存,nginx,uwsgi,http-caching,Nginx,Uwsgi,Http Caching,我想使用Nginx缓存Uwsgi应用程序。应用程序为某些请求设置缓存控制标题。应仅为这些请求启用Nginx缓存,并遵守max age条件 因此,我试图为上游未设置缓存控制的请求设置uwsgi\u no\u缓存1。和uwsgi\u no\u缓存0,用于上游未设置缓存控制头的请求 但是,这不起作用: set $no_cache 1; if ($sent_http_cache_control) { set $no_cache 0; } uwsgi_no_cache $no_cache; 问题

我想使用Nginx缓存Uwsgi应用程序。应用程序为某些请求设置
缓存控制
标题。应仅为这些请求启用Nginx缓存,并遵守
max age
条件

因此,我试图为上游未设置缓存控制的请求设置
uwsgi\u no\u缓存1
。和
uwsgi\u no\u缓存0
,用于上游未设置
缓存控制
头的请求

但是,这不起作用:

set $no_cache 1;
if ($sent_http_cache_control) {
    set $no_cache 0;
}
uwsgi_no_cache $no_cache;
问题在于
$sent\u http\u cache\u控件
,不幸的是,它没有反映上游设置的头


当上游设置了
缓存控制时,是否有办法仅在Nginx中启用缓存?

对于上游服务返回的头,您需要使用
$upstream\u http\ucode>前缀


因此,在您的情况下,它应该是
$upstream\u http\u cache\u control

而不是
$sent\u http\u cache\u control
?@TarunLalwani
$http\u cache\u control
是查询头。我想要上游UWSGI-Process的响应头。那么它应该是
$upstream\u http\u cache\u control
@TarunLalwani谢谢!看起来是个解决办法。想为赏金业写个答案吗?