Nginx快取設定教程
在開發除錯web的時候,經常會碰到因瀏覽器快取(cache)而經常要去清空快取或者強制重新整理來測試的煩惱,提供下apache不快取配置和nginx不快取配置的設定。在常用的快取設定裡面有兩種方式,都是使用add_header來設定:分別為Cache-Control和Pragma。
nginx: location ~ .*\.(css|js|swf|php|htm|html )$ { add_header Cache-Control no-store;add_header Pragma no-cache; }
對於站點中不經常修改的靜態內容(如圖片,JS,CSS),可以在伺服器中設定expires過期時間,控制瀏覽器快取,達到有效減小頻寬流量,降低伺服器壓力的目的。
以Nginx伺服器為例:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { #過期時間為30天, #圖片檔案不怎麼更新,過期可以設大一點, #如果頻繁更新,則可以設定得小一點。 expires 30d; } location ~ .*\.(js|css)$ { expires 10d; }
【背景】:Expires是Web伺服器響應訊息頭欄位,在響應http請求時告訴瀏覽器在過期時間前瀏覽器可以直接從瀏覽器快取取資料,而無需再次請求。
【相關資料】
Cache-Control與Expires的作用一致,都是指明當前資源的有效期,控制瀏覽器是否直接從瀏覽器快取取資料還是重新發請求到伺服器取資料。只不過Cache-Control的選擇更多,設定更細緻,如果同時設定的話,其優先順序高於Expires。
值可以是public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age
各個訊息中的指令含義如下:
- Public指示響應可被任何快取區快取。
- Private指示對於單個使用者的整個或部分響應訊息,不能被共享快取處理。這允許伺服器僅僅描述當使用者的部分響應訊息,此響應訊息對於其他使用者的請求無效。
- no-cache指示請求或響應訊息不能快取
- no-store用於防止重要的資訊被無意的釋出。在請求訊息中傳送將使得請求和響應訊息都不使用快取。
- max-age指示客戶機可以接收生存期不大於指定時間(以秒為單位)的響應。
- min-fresh指示客戶機可以接收響應時間小於當前時間加上指定時間的響應。
- max-stale指示客戶機可以接收超出超時期間的響應訊息。如果指定max-stale訊息的值,那麼客戶機可以接收超出超時期指定值之內的響應訊息。
- Last-Modified/If-Modified-Since要配合Cache-Control使用。
- Last-Modified:標示這個響應資源的最後修改時間。web伺服器在響應請求時,告訴瀏覽器資源的最後修改時間。
- If-Modified-Since:當資源過期時(使用Cache-Control標識的max-age),發現資源具有Last-Modified宣告,則再次向web伺服器請求時帶上頭 If-Modified-Since,表示請求時間。web伺服器收到請求後發現有頭If-Modified-Since 則與被請求資源的最後修改時間進行比對。若最後修改時間較新,說明資源又被改動過,則響應整片資源內容(寫在響應訊息包體內),HTTP 200;若最後修改時間較舊,說明資源無新修改,則響應HTTP 304 (無需包體,節省瀏覽),告知瀏覽器繼續使用所儲存的cache。
其最終達到的就是等效於設定這三類html快取技術:
<meta http-equiv="pragma" content="no-cache"/> <meta http-equiv="Cache-Control" content="no-cache, must-revalidate"/> <meta http-equiv="expires" content="0"/>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2795659/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nginx反向代理快取教程。Nginx快取
- 利用nginx設定瀏覽器協商快取Nginx瀏覽器快取
- WebView 設定快取WebView快取
- Nginx 教程(3):SSL 設定Nginx
- Nginx 代理快取Nginx快取
- 兩級快取實現分析之快取設定快取
- OkHttp設定支援Etag快取HTTP快取
- Apache 設定web 快取(轉)ApacheWeb快取
- nginx快取使用詳解,nginx快取使用及配置步驟Nginx快取
- Nginx 快取使用官方教程及常見問題解答Nginx快取
- Nginx瀏覽器快取Nginx瀏覽器快取
- nginx快取與優化Nginx快取優化
- Nginx快取原理及機制Nginx快取
- 深入Nginx + PHP 快取詳解NginxPHP快取
- Nginx快取伺服器配置Nginx快取伺服器
- Nginx配置瀏覽器快取Nginx瀏覽器快取
- nginx靜態檔案快取Nginx快取
- nginx快取優先順序Nginx快取
- Nginx 的五種快取方法Nginx快取
- EhCache快取使用教程快取
- 雲伺服器:Apache快取策略設定伺服器Apache快取
- 009.Nginx快取及配置Nginx快取
- Nginx 快取使用指南-簡單Nginx快取
- nginx 只快取靜態檔案Nginx快取
- okHttp--Retrofit網路快取設定總結HTTP快取
- 【轉】設定db_keep_cache_size快取,並把一個表快取進去快取
- Nginx 代理設定Nginx
- [nginx]域名設定Nginx
- 使用Nginx+Memcache做頁面快取Nginx快取
- nginx DNS 解析快取的更新問題NginxDNS快取
- apache cache-control設定頁面快取Apache快取
- 設定RECYCLE池快取一致性塊快取
- 分散式快取基礎教程分散式快取
- 如何設計快取系統:快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- Vue 全站快取二:如何設計全站快取Vue快取
- 【Nginx】nginx虛擬機器設定Nginx虛擬機
- Nginx越界讀取快取漏洞 CVE-2017-7529Nginx快取
- nginx做限流設定Nginx