当前位置: 首页 > 知识库问答 >
问题:

Nginx add_头和缓存控制

何灿
2023-03-14

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

假设源服务器返回缓存控制公共,最大年龄=60。但在nginx反向代理位置中,您可以设置如下内容:

添加\u头缓存控制公用,最大年龄=10

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

1)Nginx尊重来自源服务器的缓存控制报头,并将内容存储在其缓存中,过期时间为60秒。然后传递带有覆盖标头的响应,导致客户端将资源存储在其缓存中,过期时间为10秒。

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

共有2个答案

长孙沈义
2023-03-14

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

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

这将剥离原始标题并添加您自己的标题。

冯文彬
2023-03-14

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

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

原始标头将替换nginx标头。

解决方案是什么?使用nginxv1。4.3该模块具有更多的\u设置\u头和更多的\u清除\u头,以便从原点替换或清除头。

您可以从这里下载模块
这里介绍如何下载nginx1.4。3以及如何安装它
这里介绍如何使用这些指令。

 类似资料:
  • 我有一个问题与超文本传输协议头-缓存控制:max-age=1234我的源有那个头,但任何方式发送请求和接收304.我需要可能我错过了什么?还有一个,源除了缓存控制: max-age=1234在"响应头"有缓存控制: max-age=0在"请求头",可能是它的影响。 我的一个资源响应标题,示例: > 远程地址:10.6.237.13:443请求请求方式:GET状态码:304未修改

  • 我们已经配置nginx服务器添加缓存控制头到公共和到期时间到1个月。但是当我们从浏览器发出请求时,客户端正在添加缓存控制:无缓存头。正因为如此,它每次都是新鲜下载内容,而不是提供缓存版本。 我怎样才能缓存静态文件? 如果我从终端触发请求,服务器添加的缓存控制标头在响应标头中可见。

  • 我在维基百科上读到语用标头,上面写着: “pragma:no-cache header字段是用于请求的HTTP/1.0标头。它是浏览器告诉服务器和任何中间缓存它需要资源的新版本的一种方法,而不是服务器告诉浏览器不要缓存资源。一些用户代理在响应中确实会注意此标头,但HTTP/1.1 RFC特别警告不要依赖此行为。” 但我不明白它是干什么的?值为的标头和值也为的之间有什么区别?

  • 我想在缓存控制头中设置max age以响应。我已经写了如下,但仍然有max-age 0。我想只为一种方法设置max age,所以我不想禁用默认值。我认为应该是ovveride。 有人知道我做错了什么吗?

  • 我在S3上存储了图像,并使用lambda函数动态调整图像大小。在此过程中,我将添加到调整大小的图像中,并添加一个缓存控件头: 如果已经生成了缩略图,我只需要: null 控制缓存不存在,我想不出来... 当我使发行版中的所有映像无效时,唯一的变化是X-cache的值:第一次加载时的'error from cloudfront'(状态为200,映像加载正常)

  • 使用 rax-plugin-pwa 插件,可以方便快捷的使用 Service Worker 控制缓存,以获得更快的加载速度。 首先,安装 build-plugin-rax-pwa 插件依赖: $ npm install build-plugin-rax-pwa --save 在工程配置 build.json 中添加 pwa 插件并配置缓存目标: { "plugins": [ [