CDN緩存策略


以下內容就是FAQ,自己也學習一下。。。

1.CDN加速原理
通過動態域名解析,網友的請求被分配到離自己最快的服務器。CDN服務器直接返回緩存文件或通過專線代理原站的內容。
網絡加速+內容緩存,有效提供訪問速度

2.CDN節點數量
全國多個機房,每個機房多台服務器,CDN節點一般上百台

3.CDN緩存什么內容
緩存html、圖片、css、xml等靜態資源,不緩存含有?的動態地址、jsp、php,js文件也不緩存【除非特殊設置】
緩存原站返回HTTP狀態為20*或304,不緩存其他狀態(例如404,500,503)

4.CDN緩存內容的更新
a)用戶首次請求,CDN從原站抓取后緩存,直到文件過期后有用戶請求再次更新
b)程序主動通知CDN抓取

5.CDN緩存內容的有效期
a)原站apache吐出的靜態文件:由apache的expire和header模塊控制
主要兩項:last-modified,cache-control:max-age
apache缺省配置,所有靜態文件在cdn只緩存3600s【需要我們按需求調整被加速服務器的apache設置】
3600s后cdn失效,用戶訪問時會重新請求原站,如果沒有變化,緩存失效周期自動延長10%。
b)原站jsp或php吐出的動態內容(url形式必須是靜態的)
由程序控制last-modified,cache-control:max-age public ,apache的設置將不起作用
cdn根據這兩項判斷是否需要到原站更新內容

6.CDN和應用的結合策略
a)變化不頻繁的頁面:例如圖吧的圖片顯示頁、車型頁、已結束的比賽對陣頁
在原站生成靜態頁面,原站apache上定義過期時間,例如1天。
原站上靜態文件更新后,可以等待cdn過期。或者主動通知cdn更新(隨着cdn節點越來越多,代價會非常高)
b)變化頻繁的頁面:例如足球庫中的及時亞盤、及時歐賠、正在進行的比賽對陣頁
不生成靜態頁面,由jsp或php定義過期時間,例如5s或60s。cdn過期后,如果有用戶訪問就從原站上抓取。
優點:相關頁面內容更新后,不需要主動通知100個原站都來抓取,有效降低原站的壓力。
如果頁面內容沒有變化,返回lastmodified不變,這樣原站會直接返回304給cdn,cdn也會返回304給用戶。減少網絡傳輸和速度
比賽結束后,“正在進行的比賽對陣頁”轉換為第一類情況,再生成靜態文件
c)特殊靜態資源:例如圖片庫和某些大型產品庫中的評論js
或者頻繁訪問、頻繁更新的頁面:例如足球賽事庫的及時比分文件
通過apache nocache告訴IE不緩存,html中就不需要使用pinglun.js?123456這樣的代碼形式
然后用max-age告訴cdn緩存1s,這樣避免每次用戶請求都轉到原站


免責聲明!

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



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