nginx緩存設置(expires)


一.expires功能說明

  nginx緩存的設置可以提高網站性能,對於網站的圖片,尤其是新聞網站,圖片一旦發布,改動的可能是非常小的,為了減小對服務器請求的壓力,提高用戶瀏覽速度,我們可以通過設置nginx中的expires,讓用戶訪問一次后,將圖片緩存在用戶的瀏覽器中,且時間比較長的緩存。

原理:當nginx設置了expires后,例如設置為:expires 10d;  那么,所在的location或if的內容,用戶在10天內請求的時候,都只會訪問瀏覽器中的緩存,而不會去請求nginx。

注:需要注意的是,這種緩存方式只能在用戶不對瀏覽器強制刷新的情況下生效,如果用戶通過url來進行訪問,是可以訪問到緩存的。

舉例查看網站圖片的緩存時間:

注:

Cache-control 用於控制HTTP緩存(在HTTP/1.0中可能部分沒實現,僅僅實現了 Pragma: no-cache)
Expires 表示存在時間,允許客戶端在這個時間之前不去檢查(發請求),等同max-age的效果。但是如果同時存在,則被Cache-Control的max-age覆蓋。

 

二.expires在nginx中配置的位置

在nginx中可以寫在locationif

 

三.格式

expires 30s;   #緩存30秒
expires 30m;  #緩存30分鍾   
expires 2h;     #緩存2小時
expires 30d;    #緩存30天

注:服務器的時間要准確,如果服務器的時間落后於實際時間,可能導致緩存失效。

 

四.nginx不設置expires則響應304

304其實也是一種緩存手段,其原理如下:

服務器響應文件內容時,同時響應etag標簽(內容的簽名,內容一變,他也變),和last_modified_since兩個標簽值,瀏覽器下次去請求時,頭信息發送這2個標簽,服務器檢查文件有沒有發生變化,如沒有發生變化,直接將頭信息返回:etag,last_modified_since,這個時候,瀏覽器知道內容沒有改變,於是直接調用本地緩存。這個過程也請求了服務器,傳輸的信息極少,對於變化周期短的,如靜態html、css、js比較適合用這個方式。

 


免責聲明!

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



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