在nginx中使用add_header指令时,会将头部添加到来自源站的响应中。
假设源站返回cache-control public,max-age=60。但在nginx反向代理位置中,您可以设置如下内容:
add_header缓存控制公共,最大年龄=10
这到底是做什么的?我能想到两种不同的场景:
1) Nginx会尊重来自源站的cache-control头部,将内容存储在自己的缓存中,过期时间为60秒。然后使用重写的报头传递响应,导致客户端在10s的过期时间内将资源存储在其缓存中。
或者..。
2) Nginx先覆盖响应头部,再进行解释。它以10秒的过期时间存储资源,并将响应传递给客户端,客户端也会在10秒的过期时间内缓存该资源。
发布于 2013-12-12 02:39:59
Nginx会在源站之前添加头部,因此您会看到:
cache-control: public, max-age=10
cache-control: public, max-age=60并且原始报头将替换nginx报头。
解决方案是什么?使用带有more_set_headers和more_clear_headers模块的nginx v1.4.3替换或清除源中的头部。
您可以从here下载该模块。
Here如何下载和安装nginx 1.4.3。
Here如何使用指令。
发布于 2020-01-28 22:12:09
如果您想完全丢弃原始的servers标头,您可以添加:
proxy_hide_header 'Cache-Control';
add_header 'Cache-Control' "public, max-age=10";这将剥离原始标题并添加您自己的标题。
https://stackoverflow.com/questions/19002567
复制相似问题