ngx_http_headers_module模塊
一. 前言
ngx_http_headers_module模塊提供了兩個重要的指令add_header和expires,來添加 “Expires” 和 “Cache-Control” 頭字段,對響應頭添加任何域字段。add_header可以用來標示請求訪問到哪臺服務器上,這個也可以通過nginx模塊nginx-http-footer-filter研究使用來實現。expires指令用來對瀏覽器本地緩存的控制。
二. add_header指令
語法: add_header name value;
默認值: —
配置段: http, server, location, if in location
對響應代碼為200,201,204,206,301,302,303,304,或307的響應報文頭字段添加任意域。如:
add_header From Vevb.com
三. expires指令
語法: expires [modified] time;
expires epoch | max | off;
默認值: expires off;
配置段: http, server, location, if in location
在對響應代碼為200,201,204,206,301,302,303,304,或307頭部中是否開啟對“Expires”和“Cache-Control”的增加和修改操作。
可以指定一個正或負的時間值,Expires頭中的時間根據目前時間和指令中指定的時間的和來獲得。
epoch表示自1970年一月一日00:00:01 GMT的絕對時間,max指定Expires的值為2037年12月31日23:59:59,Cache-Control的值為10 years。
Cache-Control頭的內容隨預設的時間標識指定:
·設置為負數的時間值:Cache-Control: no-cache。
·設置為正數或0的時間值:Cache-Control: max-age = #,這里#的單位為秒,在指令中指定。
參數off禁止修改應答頭中的"Expires"和"Cache-Control"。
實例一:對圖片,flash文件在瀏覽器本地緩存30天
location ~ .*/.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; }
實例二:對js,css文件在瀏覽器本地緩存1小時
location ~ .*/.(js|css)$ { expires 1h; }
ngx_headers_more模塊
一. 介紹ngx_headers_more
ngx_headers_more 用于添加、設置和清除輸入和輸出的頭信息。nginx源碼沒有包含該模塊,需要另行添加。
該模塊是ngx_http_headers_module模塊的增強版,提供了更多的實用工具,比如復位或清除內置頭信息,如Content-Type, Content-Length, 和Server。
可以允許你使用-s選項指定HTTP狀態碼,使用-t選項指定內容類型,通過more_set_headers 和 more_clear_headers 指令來修改輸出頭信息。如:
more_set_headers -s 404 -t 'text/html' 'X-Foo: Bar';
輸入頭信息也可以這么修改,如:
location /foo { more_set_input_headers 'Host: foo' 'User-Agent: faked'; # now $host, $http_host, $user_agent, and # $http_user_agent all have their new values.}
-t選項也可以在more_set_input_headers和more_clear_input_headers指令中使用。
不像標準頭模塊,該模塊的指示適用于所有的狀態碼,包括4xx和5xx的。 add_header只適用于200,201,204,206,301,302,303,304,或307。
新聞熱點
疑難解答