Nginx add_header和缓存控件

问题描述 投票:5回答:2

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

说原始服务器返回缓存控制公共,最大年龄= 60。但是在nginx反向代理位置中,您需要设置以下内容:

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

这到底是做什么的?我可以想到2种不同的情况:

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

或..

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

caching nginx reverse-proxy cache-control
2个回答
9
投票

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如何使用指令。


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.