根据恩吉克斯氏病 on proxy_cache_bypass
定义不能从缓存中获取响应的条件。如果字符串参数的至少一个值不是空的,并且不等于“0”,那么响应将不会从缓存中获取:
我希望头部Cache-Control: no-cache的请求绕过Nginx缓存,并被转发到上游服务。我应该使用以下配置吗?
proxy_cache_bypass $http_cache_control;我之所以这样问,是因为当Cache-Control有非零值时,Nginx似乎会绕过缓存,而不检查其内容是否为no-cache。如果没有,实现我的目标最好的方法是什么?
发布于 2023-03-08 08:29:45
你是对的。您应该使用map到选择正确的值来控制缓存。
例如:
map $http_cache_control $cache_bypass {
no-cache 1;
}
proxy_cache_bypass $cache_bypass;注意,map块必须放在server块之外。
https://serverfault.com/questions/1125561
复制相似问题