標籤:
設定緩衝,可以提高網站效能。
當網站的部分內容,比如新聞站的圖片,一旦發布就不太可能發生更改,此時需要使用者在訪問一次頁面之後,把該頁面的圖片緩衝在使用者的瀏覽器端一段時間,就可以用到 nginx 的 expires 設定。
expires 的文法參見:http://nginx.org/en/docs/http/ngx_http_core_module.html
location = /images/default.gif { expires 30s; # 30m:30 分鐘,2h:2 小時,30d:30 天}
expires 的上下文包括 location、if in location
【例】
訪問 http://192.168.254.100/
圖片 nginx.png 的響應狀態是 200 ok
此時圖片的 http 頭資訊:
再次重新整理該頁面
圖片 nginx.png 的響應狀態是 304 Not Modified,即來自瀏覽器緩衝
此時圖片的的 http 頭資訊:
雖然圖片該次是從瀏覽器緩衝中讀取,但是瀏覽器仍然像伺服器發出了一次 http 請求
如果要實現在一定時間內,瀏覽器不需要向伺服器發送 http 請求,而直接從本機快取中讀取圖片,可以在 nginx.conf 中進行配置:
[[email protected] nginx]# vim conf/nginx.conf
nginx.conf(添加 location 段 或者 修改 location ~ image ):
location ~ image { root /var/www/;
expires 1d; index index.html; }
平滑重啟 nginx
強刷(ctrl+f5)該頁面,此時圖片的 http 響應資訊:
86400 是 1 天的秒數。
再次重新整理該頁面(按瀏覽器的重新整理按鈕):
在地址欄斷行符號重新整理頁面:
沒有產生實際請求。
在 chrome 瀏覽器下,通過地址欄斷行符號重新整理頁面時的 http 響應資訊:
from cache 表名沒有產生實際請求。
修改 location ~ image 或者 添加 location,使緩衝圖片不僅限於 image 檔案夾,而是網站中所有的 png|jpg|jpeg|gif (不區分大小寫)圖片都進行緩衝設定:
location ~* \.(jpg|jpeg|png|gif){ expires 1d; }
平滑重啟 nginx。
驗證:訪問 ecshop 目錄下的某個圖片
沒有產生實際請求。
點擊瀏覽器重新整理按鈕,查看該圖片的 http 回應標頭資訊:
說明此次 location 配置成功。
Nginx 筆記與總結(14)expires 緩衝設定