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瀏覽器快取
- Nginx 代理快取Nginx快取
- OkHttp設定支援Etag快取HTTP快取
- nginx快取使用詳解,nginx快取使用及配置步驟Nginx快取
- Nginx瀏覽器快取Nginx瀏覽器快取
- 深入Nginx + PHP 快取詳解NginxPHP快取
- Nginx快取伺服器配置Nginx快取伺服器
- Nginx快取原理及機制Nginx快取
- 009.Nginx快取及配置Nginx快取
- Nginx配置瀏覽器快取Nginx瀏覽器快取
- 雲伺服器:Apache快取策略設定伺服器Apache快取
- EhCache快取使用教程快取
- Nginx 快取使用指南-簡單Nginx快取
- Nginx越界讀取快取漏洞 CVE-2017-7529Nginx快取
- SpringBoot快取管理(一) 預設快取管理Spring Boot快取
- nginx做限流設定Nginx
- 分散式快取基礎教程分散式快取
- 如何設計快取系統:快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- Vue 全站快取二:如何設計全站快取Vue快取
- Nginx 是如何讓你的快取延期的Nginx快取
- Nginx之11吸星大法 - (頁面快取)Nginx快取
- nginx快取配置及開啟gzip壓縮Nginx快取
- TP-LINK路由器自動清理怎麼設定?TP-LINK路由器自動清理快取資料設定教程路由器快取
- vue怎麼設定html不快取 但是js、css等檔案做快取VueHTML快取JSCSS
- Java記憶體快取-通過Map定製簡單快取Java記憶體快取
- Nginx設定404頁面Nginx
- Nginx日誌格式設定Nginx
- Linux下玩轉nginx系列(六)---nginx實現cache(快取)服務LinuxNginx快取
- 優雅的快取解決方案--設定過期時間快取
- Nginx R31 doc-07-內容快取Nginx快取
- Nginx 內容快取及常見引數配置Nginx快取
- 使用 NGINX 和 NGINX Plus 實現智慧高效的位元組範圍快取Nginx快取
- onethink怎麼關閉快取?debug設定為true沒用啊!快取
- nginx設定X-Frame-OptionsNginx
- 快取穿透、快取擊穿、快取雪崩、快取預熱快取穿透
- 由Nginx的DNS快取導致的訪問404NginxDNS快取
- Nginx 快取機制詳解!非常詳細實用Nginx快取