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 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 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 [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;