cdn緩存設置
❶ CDN | CDN緩存規則及優先順序
一條緩存規則,該規則表示html後綴的文件會緩存5分鍾。
不管訪問多少次,X-Cache 始終是 MISS,X-Swift-CacheTime 也一直為 0。
X-Cache 為 MISS,X-Swift-CacheTime 為 0,CDN不緩存。
X-Cache 為 MISS,X-Swift-CacheTime 為 0,CDN不緩存。
X-Cache 為 MISS,X-Swift-CacheTime 為 0,CDN不緩存。
試下能否正常被CDN緩存。
X-Cache 變成了 HIT,X-Swift-CacheTime 變成了 300,也就是CDN緩存5分鍾。
緩存規則權重不同,有兩條緩存規則,其中 /static/ 目錄類型的權重最大,意味著優先順序最高。
請求 /static/ 目錄下 html 後綴的文件,看下匹配到哪條規則?
X-Swift-CacheTime: 120,這是匹配到了 /static/ 目錄類型的規則。
緩存規則權重相同, html 文件後綴名的規則創建時間最早,正常情況應該是匹配到該條規則。
X-Swift-CacheTime: 300,確實匹配到了 html 文件後綴名規則。
CDN不要設置緩存規則,然後nginx配置內容如下,Cache-Control設置為60秒,Expires設置為120秒。
源站響應頭部有 Cache-Control 、 Expires 、 Last-Modified 、 ETag ,測試看看哪個優先順序最高。
X-Swift-CacheTime: 60,Cache-Control 的優先順序高一些。
在nginx配置中將 add_header Cache-Control "max-age=60"; 去掉再試試。
X-Swift-CacheTime: 120,緩存規則是用 Expires 的時間了。
去掉nginx配置中的 expires 120s; 。
X-Swift-CacheTime 會隨著時間變化,這是因為緩存過期了,CDN重新去源站拉取,然後重新計算緩存過期時間。
ok,最後一步,將 Last-Modified 響應頭部給幹掉。
只有 Etag 響應頭部,不管訪問幾次,依舊是 X-Swift-CacheTime: 10。
將4個響應頭部都幹掉,看下CDN是否會緩存。
多次測試始終是 X-Cache: MISS 和 X-Swift-CacheTime: 0,這說明如果這4個響應頭部都沒了,CDN是不緩存的。
❷ 通過HTTP Header控制緩存
我們經常通過緩存技術來加快網站的訪問速度,從而提升用戶體驗。HTTP協議中也規定了一些和緩存相關的Header,來允許瀏覽器或共享高速緩存緩存資源。這些Header包括:
Last-Modified 和 If-Modified-Since
ETag 和 If-None-Match
Expires
Cache-Control
以上Header又可以分成兩種類型:
協商緩存:瀏覽器發送驗證到伺服器,由伺服器決定是否從緩存中讀取,如 1 和 2 。
強緩存:瀏覽器驗證緩存的有效性,然後決定是否從緩存中讀取數據,如 3 和 4 。
本文將會分別介紹這四種配置的作用以及可能產生的影響。
1、Last-Modified 和 If-Modified-Since
Last-Modified:伺服器在響應請求時,告知瀏覽器資源的最後修改時間。
If-Modified-Since:瀏覽器再次發送請求時,會通過此Header通知伺服器在上次請求時所得到的資源最後修改時間。伺服器會將If-Modified-Since與被請求資源的最後修改時間進行比對。若資源的最後修改時間晚於If-Modified-Since,表示資源已被改動,則響最新的資源,返回200狀態碼;若資源的最後修改時間早於或等於If-Modified-Since,表示瀏覽器端的資源已經是最新版本,響應304狀態碼,通知瀏覽器繼續使用緩存中的資源。
2、ETag 和 If-None-Match
ETag:伺服器分配給資源的唯一標識符,資源被修改後,ETag也會隨之發生變化。
If-None-Match:瀏覽器再次發送請求時,會通過此Header通知伺服器已緩存資源的ETag。伺服器會將If-None-Match與被請求資源的最新ETag進行比對。若不相同,表示資源已被改動,則響應最新的資源,返回200狀態碼;若值相同,則直接響應304狀態碼,通知瀏覽器繼續使用緩存中的資源。
3、Expires
伺服器可以通過此Header向瀏覽器傳遞一個具體的時間(格林威治格式,例如:Thu, 19 Jul 2018 07:43:05 GMT) ,來明確地宣告資源的有效期。在資源過期之前,瀏覽器不再發送請求,而是直接從緩存中讀取數據。只有當資源過期之後,瀏覽器才會再次向伺服器請求該資源。
4、Cache-Control
伺服器使用此Header來向客戶端建議緩存策略,它有一下幾個可選值:
max-age=秒:告知瀏覽器緩存的有效時長,在該時間內瀏覽器將直接從緩存中讀取數據。
s-maxage=秒:作用同max-age,但是只對共享高速緩存(如CDN)有效,對瀏覽器無效。
no-cache:告知瀏覽器不要直接使用緩存,而是必須向伺服器發送請求。
no-store:告知瀏覽器不要緩存本次請求和響應的任何信息。
public:宣告任何緩存媒介都可以緩存該響應。
private:宣告該響應只允許個體客戶端(如瀏覽器)去緩存,而不允許共享高速緩存(如CDN)去緩存。
在上面的介紹中我們了解到瀏覽器會根據max-age設置的時間進行緩存。而通過研究發現CDN也會識別源站響應頭中Cache-Control屬性,根據max-age設置的時間進行緩存,但是,如果源站同時設置了s-maxage和max-age,那麼CDN會優先採用s-maxage。
下面通過圖例來展示一下這些可選值的效果。
首先了解一下瀏覽器是怎樣根據max-age進行緩存的:
從上圖不難發現,伺服器在Header中返回了Cache-Control: max-age=100後,瀏覽器成功緩存100秒,該時間段內的請求都從直接以本地緩存來響應。
那麼,伺服器在Header中返回Cache-Control:s-maxage=100時,又會對瀏覽器產生什麼樣的影響呢?
如上圖所示,瀏覽器沒有採取任何緩存策略,這是因為s-maxage面向的是共享高速緩。
上面這兩個例子很容易理解,在現實世界中,為了加快網站響應速度,我們可能會在瀏覽器和伺服器之間引入CDN服務。瀏覽器的請求會先到達CDN,然後CDN判斷是從緩存中讀取數據還是回源到伺服器。接下來,讓我們看看max-age和s-maxage會對CDN的緩存策略帶來哪些影響。
可以看出CDN也會利用max-age來緩存,所以在100秒內強制刷新瀏覽器時,CDN會直接用緩存來響應。
如果伺服器使用了s-maxage又會如何呢?
不難發現CDN對max-age和s-maxage採取了同樣的緩存策略,但瀏覽器並不會根據s-maxage來進行緩存。
CDN供應商的特殊規則
我們分別測試了阿里雲和騰訊雲的CDN對Cache-Control的支持情況,發現他們都有一些獨特的規則。阿里雲CDN可以在控制台里設置Cache-Control,該設置會覆蓋源伺服器的Cache-Control。
騰訊雲CDN雖然沒有再控制台提供覆蓋Cache-Control的功能,但其規則卻一點也不簡單,在使用的時候一定要特別注意:
伺服器和CDN均不對緩存進行配置時,CDN會採用默認的緩存機制(靜態文件緩存30天,動態請求不緩存);
CDN配置緩存機制(但並未開啟高級緩存配置)且伺服器設置Cache-Control: s-maxage=200,max-age=100時,CDN會按照其控制台設置的規則進行緩存,瀏覽器則按照max-age進行緩存;
伺服器不設置Cache-Control時,CDN會自動在響應的Header中添加Cache-Control: max-age=600,這就會讓瀏覽器將該資源緩存600秒;
伺服器設置為禁用緩存時,CDN和瀏覽器均不進行緩存;
伺服器設置Cache-Control: s-maxage=200,max-age=100並開啟CDN的高級緩存配置時,CDN會從s-maxage和控制台中設置的緩存時間中選擇最小值來作為緩存時間,而瀏覽器則始終使用max-age;
伺服器設置Cache-Control:max-age=100並開啟CDN的高級緩存配置時,CDN會從max-age和控制台中設置的緩存時間中選擇最小值來作為緩存時間,不影響瀏覽器的緩存策略。
組合使用
如果同時設置了這些Header,瀏覽器和高速共享緩存會按照下面的優先順序進行緩存:
Cache-Control > Expires > ETag > Last-Modified
也就是說,Cache-Control不僅是強緩存,而且擁有最高的優先順序,我們可以為不經常發生變化的資源應用該Header來提升響應時間。
在Ada中使用緩存
Ada提供了UI腳手架和API腳手架,這兩類腳手架的伺服器端入口文件分別為index.server.js和index.js,我們只需要在入口文件的請求處理函數中為響應添加適當的Header,即可通知客戶端進行響應的緩存,比如:
// 設置CDN緩存300秒,瀏覽器緩存200秒 ctx.response.headers.set('Cache-Control',public,s-maxage=300,max-age=200)
在為請求添加緩存Header之前,應該先為其制定適當的緩存策略,需要考慮該URL是否適合緩存(數據是否特定於用戶)以及需要緩存的時長等等。
總結
通過使用這些HTTP Header,我們可以主動影響瀏覽器甚至CDN的緩存策略,從而減少請求數量,提升網頁性能,減輕伺服器壓力。
Ada的靈活機制能讓我們為不同的URL設置不同的緩存策略,能夠更有針對性地進行主動緩存。
❸ 如何配置百度雲加速CDN緩存提高網站訪問速度
配置網路雲加速CDN緩存提高網站訪問速度
今天在登陸網路推廣後台後,發現優化建議裡面有一條提示,網站打開速度慢,達到7秒。想一下有多少網民願意等待7秒呢,沒耐心的都直接關閉你的網站。這個流失率不小啊。於是我就按照提示用網路的那個網站速度診斷工具,測試一下,網通和電信都顯示得分56:
然後我就想到了使用網路雲加速來提高一下網站的打開相應速度,因為以前在群里看到有人提到過這個東西,說是可以能提高網站的載入速度。而且還不止這些好處呢!下面我就以自己實際操作的步驟來給大家看看,一個網站如何加入網路雲加速。
1.需要登錄你的賬號
這里有兩種登錄方式,一個是用的網路賬號;另外一個就是使用網路推廣賬號,我這里就使用的網路推廣賬號進行登錄了。
進入我的網站進行相關設置
進入網站,然後添加網站。這里也有兩種接入方式:NS/CNAME方式,我自己使用的是NS驗證的方式,因為感覺這個方便點,能使用網路各機房節點的DNS高智能服務,同時也是網路推薦使用的接入方式。
然後進入下一步,配置子域名;這里默認的有一個MX記錄,還有一個A記錄;在這里需要檢查的是指向IP地址是否是你空間上的那個IP,接下來增加一個@記錄A指向的,這樣無論是帶三個W的還是頂級域名都會指向同一個頁面地址,方便搜索引擎統一認識啊!
其次,配置服務商設置。在這里需要去你的空間管理那邊,把原先的那個DNS地址修改一下,改為網路的ns1.bddns.cn和ns2.bddns.cn;這兩個缺一不可的。在這里我就演示一下新網的修改方法,登陸新網管理那邊,修改域名DNS地址,然後確定就修改成功了。修改成以後,回到網路雲剛才那個頁面,檢驗修改就大功告成了,是不是挺容易的呢?具體的可以看一下下面的圖;
設置好以後也可以看網站數據,看什麼節點啊,這些之類的。接入網路雲之後,還真發現網站打開速度快了。
如果你發現你的網站打開速度慢,想讓它變快點的話,那不妨來使用網路雲加速試試吧!
❹ 天翼雲cdn緩存設置規則執行順序
天翼雲cdn緩存設置規則執行順序在解決方法是聯系天宇的公司的人工客服告訴他們,你想要執行的緩存設置規則,然後告訴他們具體的執行程序,讓他們幫你進行緩存的切換模式就可以了
❺ 如何配置百度雲加速cdn緩存提高網站訪問速度
給你需要緩存的資源做自定義規則全部緩存即可。進入雲加速報表下拉的規則自定義-添加URL緩存規則,比如我要緩存ZIP壓縮包,如下添加
網路雲加速支持通配符格式,比如我要緩存全站內的所有zip格式的壓縮包,那麼添加www.zhujib.com/*.zip的所有都緩存規則,記住緩存粒度一定要選所有都緩存,否則是不會緩存資源的。
對於動態網站如果你不需要會員登陸這些功能的,也可以添加一個全站緩存比如www.zhujib.com/*,這樣別人不管訪問你哪個頁面網路雲加速都會給你網站緩存,可以大大減少伺服器訪問壓力。當然我們要看網站實際情況來弄,如果你網站是一個論壇,那就不適合做全站緩存了,只要設置做純靜態資源的目錄緩存即可。
❻ cfcdn緩存設置
不能。cfcdn緩存由於是只能進行儲存的,因此是並不能進行設置的。緩存是指訪問速度比一般隨機存取存儲器(RAM)快的一種高速存儲器。
❼ cdn加速器的緩存一般設置多長時間
cdn加速器的緩存一般設置多長時間
寫回答有獎勵 共3個回答
2016-04-21 TA獲得超過959個贊
關注
這個主要是看所緩存內容的更新頻率。。。
通常來說 像圖片、js、css等這些內容一般是很少變動的,那麼緩存時間可以設置長一點,1天 或者更長。假如有變動的時候可以手動提交一下刷新。
而變動比較頻繁的內容 緩存時間可以設置短一點。
1 9
高能答主
今天 14:38 最想被誇「你懂的真多」
關注
在傳統的動態系統的訪問中,用戶對網路的請求過程,一般需要經過網路中多台路由器的傳輸,最終將發送的請求交於動態系統來處理,但是由於IP網路本身的「盡力而為的原則」、網路鏈路中復雜的環境及硬體的不可靠性的確實存在,致使用戶要出現重復發送的請求的現狀,所以最終導致用戶的請求在提交的過程中出現等待、數據載入時間過長的一些現象的普遍存在,這些在線提交式系統的緩慢直接地影響到辦公人員的工作效率,這也是制約著很多大型企業在協同辦公OA、ERP、SAP等信息化建設中,出現最多的問題。
而CDN分發解決方案解決了與靜態網站相關的性能和可靠性問題,而在當今在線業務體驗中,與分發靜態和動態元素和應用相關的獨特挑戰,則由速網的動態網站加速來解決。
CDN能幾乎涵蓋國內所有線路。而在可靠性上, CDN 在結構上實現了多點的冗餘,即使某一個節點由於意外發生故障,對網站的訪問能夠被自動導向其他的健康節點進行響應。CDN能輕松實現網站的全國鋪設,不必考慮伺服器的投入與託管、不必考慮新增帶寬的成本、不必考慮多台伺服器的鏡像同步、不必考慮更多的管理維護技術人員。
展開剩餘40%
0 搶首贊
匿名用戶
2020-11-09
cdn加速服務_Hi,移動雲_11.11,一起上雲吧!新用戶上雲2折起, 專屬雲多買多送!雲網一體/貼身服務/隨心定製/安全可控!點擊了解更多活動信息。 點擊進入詳情頁
廣告
今天 13:26 TA獲得超過1593個贊
關注
這個主要是看所緩存內容的更新頻率。。。
通常來說 像圖片、js、css等這些內容一般是很少變動的,那麼緩存時間可以設置長一點,1天 或者更長。假如有變動的時候可以手動提交一下刷新。
而變動比較頻繁的內容 緩存時間可以設置短一點。
0 搶首贊
天下數據cdn加速無需備案無需備案 私人訂制 全球節點任選
天下數據cdn加速無需備案海外節點任意定製,全線加速,一鍵隱藏真實IP,數據安全有保..
深圳市朗玥科技有限公司廣告
香港cdn-華為雲CDN加速_11.11上雲嘉年華_折後買一送一
值得一看的香港相關信息推薦
華為雲全球2500+節點覆蓋,調度精準率高達99.99%,更低時延_更低回源。華為雲11.11上..
華為技術有限公司廣告
Tap加速器_一款簡單好
❽ CDN | 明明設置了30天緩存時間,為啥還沒到30天就回源了
突然朋友問了我個這樣的問題:明明設置了30天緩存時間,為啥還沒到30天就回源了?
相信很多朋友也有這種問題,首先回憶一下CDN的請求流程:
首次請求因為未命中緩存所以要到源站伺服器獲取資源,等CDN伺服器將資源緩存在本地後,後續客戶端再來請求就由CDN伺服器直接給客戶端了,不用再去源站。
既然都設置了30天的緩存時間,那理所應當是30天之後才會再次到源站伺服器獲取資源。
其實這種說法不完全正確,30天是理想最大的過期時間,不出現意外的情況下,資源在CDN伺服器上是可以緩存30天的。
但是意外總是有的,比如CDN伺服器壞了,裡面的數據都丟了。後面CDN伺服器搞好重新上線時,裡面什麼緩存都沒有的,那你再次請求到CDN伺服器是不是就會回源?
還有以下情況。
除了以上的原因還有其他的,不一一舉例了。
那怎麼才能避免出現上面的問題?
CDN伺服器壞掉的問題,這個沒啥好的辦法;其他三個問題,主要解決辦法是提升網站的請求量,但也不能徹底解決只能起到緩解而已。
網站每天必須有一定的請求量和流量,讓資源保持熱度,不然資源就有可能被淘汰掉。
❾ 設置cdn只緩存302
錯誤。CDN緩存302帶來的問題而其他不同終端設備的用戶,通過該url進行訪問的時候就會出現訪問到的頁面情況,仍然是第一個用戶緩存的302的請求到的頁面上。
❿ 如何配置百度雲加速CDN緩存提高網站訪問速度
如果是牛盾雲加速,一般來說默認的緩存設計即可,因為是最常用和最省事的,具體可以根據問題微調。 如果是傳統cdn,您可以聯系官網7x24的客服電話詳細咨詢呢。