瀏覽器緩存(Browser Caching) 是為了加速瀏覽并節約網絡資源,瀏覽器在用戶磁盤上對最近請求過的文檔進行存儲。
nginx可以通過 expires 指令來設置瀏覽器的Header
語法: expires [time|epoch|max|off]
默認值: expires off
作用域: http, server, location
使用本指令可以控制HTTP應答中的“Expires”和“Cache-Control”的頭標,(起到控制頁面緩存的作用)。
可以在time值中使用正數或負數。“Expires”頭標的值將通過當前系統時間加上您設定的 time 值來獲得。
epoch 指定“Expires”的值為 1 January, 1970, 00:00:01 GMT。
max 指定“Expires”的值為 31 December 2037 23:59:59 GMT,“Cache-Control”的值為10年。
-1 指定“Expires”的值為 服務器當前時間 -1s,即永遠過期
例子:
圖片緩存30天
location ~.*/.(jpg|png|jpeg)$ { expires 30d; }
js css緩存一小時
location ~.*/.(js|css)?$ { expires 1h; }
瀏覽器緩存的頭信息,在nginx里也是可以設置的,如下。
#配置在server節點下 #將favicon.ico放到nginx安裝目錄的html目錄下 location = /favicon.ico { root html; index index.html index.htm; expires 30d; #會同時設置Expires 和 Cache-Control:max-age add_header Pragma Pragma; }
設置完以后,請求通過瀏覽器查看。
增加了
Cache-Control:max-age=2592000 Expires:Sun, 08 Nov 2015 01:07:48 GMT
緩存生效。
注意事項
調試的時候要注意幾個問題:
四類用戶行為影響緩存:F5刷新,F5強制刷新,點擊刷新,地址欄回車。會讓Expires失效。