关于缓存:Nginx add_header和缓存控件

Nginx add_header and cache control

在nginx中使用add_header指令时,标头将添加到来自原始服务器的响应中。

假设原始服务器返回公共缓存控制,最大值为60。 但是在nginx反向代理位置中,您可以进行如下设置:

add_header缓存控制公共,最大年龄= 10

这到底是做什么的? 我可以想到两种不同的方案:

1)Nginx尊重原始服务器的缓存控制标头,并将内容存储在其缓存中,有效期为60秒。 然后使用覆盖的标头传递响应,使客户端将资源存储在其缓存中,其有效期为10s。

要么..

2)Nginx首先覆盖响应头,然后解释它们。 它以10秒的过期时间存储资源,并将响应传递给客户端,客户端也以10秒的过期时间对该资源进行缓存。


Nginx在源服务器之前添加其标头,因此您将具有:

1
2
cache-control: public, max-age=10
cache-control: public, max-age=60

原始标头将替换nginx标头。

解决方案? 使用具有模块more_set_headers和more_clear_headers的nginx v1.4.3来从源中替换或清除标头。

您可以从此处下载该模块。
在这里,如何下载nginx 1.4.3以及如何安装它。
这里如何使用指令。


如果要完全丢弃原始服务器标头,则可以添加:

1
2
proxy_hide_header 'Cache-Control';
add_header 'Cache-Control'"public, max-age=10";

这将删除原始标题并添加您自己的标题。