原文連接:何曉東 博客html
前置條件:須要編譯
ngx_http_headers_module
模塊,才支持 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) 時生效,若是 always
參數指定了,頭信息將無視狀態碼,在全部響應中強制返回。nginx
注意: 能夠聲明多個 add_header 指令,當且僅當 當前區塊沒有 add_header 的時候,纔會繼承上級聲明的 add_header 信息git
例如:github
server { add_header a 123; location / { root /path; } location /download/ { add_header b 321; } }
如上的例子,在訪問 /download/
路由的時候,將返回 b 321 這樣的頭信息,而訪問 /
路由時,將返回上級指定的 a 123 頭信息。segmentfault
意思爲將自定義的頭信息添加到響應頭的末尾,指令爲 add_trailer name value [always];
,能夠用在 http {}
, server {}
, location {}
, if in location {}
上下文中,只有當響應狀態碼等於 200, 201, 206, 301, 302, 303, 307, 或 308 時生效,若是 always
參數指定了,頭信息將無視狀態碼,在全部響應中強制返回。app
注意: 能夠聲明多個 add_trailer 指令,當且僅當 當前區塊沒有 add_trailer 的時候,纔會繼承上級聲明的 add_trailer 信息翻譯
舉例參考 add_header 的例子。code
啓用或禁用,添加或修改響應頭中的 "Expires" 和 "Cache-Control" 字段,指令爲 expires [modified] time;
或者 expires epoch | max | off;
當響應狀態碼等於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
指令中指定的時間之和。server
此外,能夠使用 "@" 前綴(0.7.9,0.6.34)指定一天中的時間:expires @15h30m;
htm
"Cache-Control" 字段的內容取決於指定時間的符號:
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;
© 主體內容翻譯自 Module ngx_http_headers_module docs, 作了一些調整和示例
大佬們,點這個連接進入知識的寶庫 ,絕對超值