ngx_http_headers_module 模块

ngx_http_headers_module 模块允许将 “Expires” 和 “Cache-Control” 标头字段以及任意字段添加到响应标头中。

示例配置

expires    24h;
expires    modified +24h;
expires    @24h;
expires    0;
expires    -1;
expires    epoch;
expires    $expires;
add_header Cache-Control private;

指令

add_header 指令

语 法:add_header name value [always];
默认值:—
上下文:http, server, location, if in location

如果响应代码等于 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 (1.1.16, 1.0.13) 或 308 (1.13.0),则将指定字段添加到响应标头,参数值可以包含变量。

配置中可能有几个 add_header 指令。当且仅当当前级别上没有定义 add_header 指令时,这些指令才从先前的配置级别继承。

如果指定了 always 参数 (1.7.5),则无论响应代码如何,都将添加标头字段。

add_trailer 指令

语 法:add_trailer name value [always];
默认值:—
上下文:http, server, location, if in location

该指令出现在 1.13.2 版中。

如果响应代码等于 200、201、206、301、302、303、307 或 308,则将指定字段添加到响应的末尾。参数值可以包含变量。

配置中可能有几个 add_trailer 指令。当且仅当当前级别上没有定义 add_trailer 指令时,这些指令才从先前的配置级别继承。

如果指定了 always 参数,则无论响应代码如何,都将添加指定的字段。

expires 指令

语 法:expires [modified] time;
    expires epoch | max | off;
默认值:expires off;
上下文:http, server, location, if in location

如果响应代码等于 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304, 307 (1.1.16, 1.0.13) 或 308 (1.13.0),则启用或禁用添加或修改 “Expires” 和 “Cache-Control” 响应头字段。该参数可以是正时间或负时间。

“Expires” 字段中的时间计算为当前时间和指令中指定的时间之和。

如果使用 Modified 参数(0.7.0,0.6.32),则时间计算为文件的修改时间和指令中指定的时间之和。

此外,可以使用 “@” 前缀(0.7.9, 0.6.34)指定一天中的时间:

expires @15h30m;

“Cache-Control” 字段的内容取决于指定时间的符号:

  • 时间为负 - “Cache-Control: no-cache”

  • 时间为正数或零 - “Cache-Control: max-age=t”,其中 t 是指令中指定的时间,以秒为单位。

epoch 参数将 “Expires” 设置为 “Thu, 01 Jan 1970 00:00:01 GMT”,并将 “Cache-Control” 设置为 “no-cache”。

max 参数将 “Expires” 设置为值 “Thu, 31 Dec 2037 23:55:55 GMT”,并将 “Cache-Control” 设置为 10 年。

off 参数禁止添加或修改 “Expires” 和 “Cache-Control” 响应头字段。

最后一个参数值可以包含变量(1.7.9):

map $sent_http_content_type $expires {
    default         off;
    application/pdf 42d;
    ~image/         max;
}
expires $expires;
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号