首頁  >  文章  >  運維  >  Nginx操作回應頭資訊如何實現

Nginx操作回應頭資訊如何實現

王林
王林轉載
2023-05-13 15:31:191810瀏覽

前置條件:需要編譯ngx_http_headers_module 模組,才支援header 頭資訊操作

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) 時生效,如果always 指定了,頭資訊將參數無視狀態碼,在所有回應中強制返回。

注意: 可以宣告多個add_header 指令,當且僅當當前區塊沒有add_header 的時候,才會繼承上級宣告的add_header 資訊

例如:

server {
 add_header a 123;

 location / {
  root /path;
 }

 location /download/ {
  add_header b 321;
 }
}

如上的例子,在訪問/download/ 路由的時候,將返回b 321 這樣的頭信息,而訪問/ 路由時,將返回上級指定的a 123 頭信息。

add_trailer

意思是將自訂的頭資訊加入回應頭的結尾,指令為add_trailer name value [always];,可以用在http {}, server {}, location {}, if in location {} 上下文中,只有當回應狀態碼等於200, 201, 206, 301, 302, 303, 307, 或308 時生效,如果always 參數指定了,頭資訊將無視狀態碼,在所有回應中強制返回。

注意: 可以宣告多個 add_trailer 指令,當且僅當 當前區塊沒有 add_trailer 的時候,才會繼承上級宣告的 add_trailer 資訊

舉例參考 add_header 的範例。

expires

啟用或停用,新增或修改回應頭中的"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) 或3008 ( 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"

  • 時間為正數或0 - "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;

以上是Nginx操作回應頭資訊如何實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除