Nginx 筆記與總結(14)expires 緩存設置


設置緩存,可以提高網站性能。

當網站的部分內容,比如新聞站的圖片,一旦發布就不太可能發生更改,此時需要用戶在訪問一次頁面之后,把該頁面的圖片緩存在用戶的瀏覽器端一段時間,就可以用到 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 中進行配置:

[root@localhost 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 配置成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM