模块 ngx_http_headers_module
示例配置 指令 add_header add_trailer expires |
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 |
---|---|
默认值: | — |
上下文: | 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 |
---|---|
默认值: | — |
上下文: | http , server , location , if in location |
此指令出现在版本1.13.2中。
在响应代码等于200、201、206、301、302、303、307或308时,将指定的字段添加到响应末尾。参数值可以包含变量。
可能存在多个 add_trailer
指令。如果且仅当当前级别未定义 add_trailer
指令时,这些指令才会从前一配置级别继承。
如果指定了 always
参数,则无论响应代码如何,都将添加指定的字段。
语法: | expires [ expires |
---|---|
默认值: |
expires off; |
上下文: | http , server , location , if in location |
启用或禁用添加或修改“Expires”和“Cache-Control”响应头字段,前提是响应代码等于200、201(1.3.10)、204、206、301、302、303、304、307(1.1.16、1.0.13)或308(1.13.0)。参数可以是正数或负数 time。
“Expires”字段中的时间是当前时间和指令中指定的 time
的总和。如果使用了 modified
参数(0.7.0、0.6.32),则时间是文件修改时间和指令中指定的 time
的总和。
此外,还可以使用“@
”前缀指定一天中的时间(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;