進(jìn)階知識(shí)體系之你不能不知道的CDN
時(shí)間:2023-02-20 15:22:01 | 來(lái)源:建站知識(shí)
時(shí)間:2023-02-20 15:22:01 來(lái)源:建站知識(shí)
進(jìn)階知識(shí)體系之你不能不知道的CDN:
CDN的基本概念
CDN(Content Delivery Network)就是
內(nèi)容分發(fā)網(wǎng)絡(luò)
,是構(gòu)建在現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)之上的智能虛擬網(wǎng)絡(luò)。依靠部署在各個(gè)地方的邊緣服務(wù)器,通過(guò)分
布式存儲(chǔ)
、
負(fù)載均衡
、網(wǎng)絡(luò)請(qǐng)求的
重定向
和
內(nèi)容管理
等功能模塊,以就近性和服務(wù)器負(fù)載的判斷,確保內(nèi)容以一種極為高效的方式為用戶請(qǐng)求提供所需要的資源。先看圖:
沒(méi)有CDN有CDNCDN的作用/好處/優(yōu)缺點(diǎn)
1. 加速訪問(wèn)提高用戶體驗(yàn)CDN可以使用戶就近獲取所需資源,降低網(wǎng)絡(luò)堵塞,提高用戶訪問(wèn)響應(yīng)速度和命中率
2. 有利搜索排名和轉(zhuǎn)化網(wǎng)站打開(kāi)速度是影響網(wǎng)站排名的一個(gè)重要指標(biāo),使用CDN網(wǎng)站打開(kāi)速度變快有利于搜索引擎排名,減少跳出率,從而有利于網(wǎng)站的轉(zhuǎn)化率和銷售量等
3. 減輕源站服務(wù)器壓力解決了網(wǎng)站的并發(fā)量過(guò)大造成服務(wù)器過(guò)載問(wèn)題,由此減輕了源服務(wù)器的訪問(wèn)壓力,節(jié)省了骨干網(wǎng)絡(luò)帶寬,可以接收更多流量,從而提升了網(wǎng)站的性能、可擴(kuò)展性以及安全性
4. 解決宕機(jī)問(wèn)題當(dāng)某個(gè)CDN服務(wù)器發(fā)生意外掛了(過(guò)載,攻擊等),不會(huì)影響全部,系統(tǒng)會(huì)調(diào)用臨近的健康的CDN服務(wù)器節(jié)點(diǎn)繼續(xù)服務(wù),從而具有更高的穩(wěn)定性
5. 保障網(wǎng)站安全相當(dāng)于為網(wǎng)站添加了一把防護(hù)傘,能有效應(yīng)對(duì)絕大部分網(wǎng)絡(luò)攻擊(DDOS等),網(wǎng)站被攻擊也只會(huì)打到CDN節(jié)點(diǎn)為上,不會(huì)影響源站服務(wù)器;在內(nèi)容安全上也可以解決盜版網(wǎng)站通過(guò)盜鏈之類的方法竊取內(nèi)容
6. 節(jié)約成本使用VPS或購(gòu)買服務(wù)器來(lái)托管網(wǎng)站都是有帶寬限制的,而使用CDN不用考慮購(gòu)買服務(wù)器和后續(xù)的托管運(yùn)維,服務(wù)器之間鏡像同步,也不用為了管理維護(hù)技術(shù)人員而勞心勞力,降低了網(wǎng)站建設(shè)和維護(hù)成本,節(jié)省了人力、精力和財(cái)力
缺點(diǎn)由于CDN采用各節(jié)點(diǎn)緩存的機(jī)制,如網(wǎng)站的靜態(tài)網(wǎng)頁(yè)和圖片修改后,CDN緩存沒(méi)有及時(shí)做相應(yīng)更新,則看到的還是舊的網(wǎng)頁(yè)。即使用戶在瀏覽器使用Ctrl+F5的方式使瀏覽器端的緩存失效,也會(huì)因?yàn)镃DN邊緣節(jié)點(diǎn)沒(méi)有同步最新數(shù)據(jù)而導(dǎo)致用戶訪問(wèn)看到的還是舊見(jiàn)網(wǎng)頁(yè)。我一般都是自己登錄服務(wù)器管理后臺(tái)去刷新CDN或者喊運(yùn)維刷新
CDN的工作流程與訪問(wèn)原理
當(dāng)給一個(gè)域名開(kāi)通了CDN,要先給這個(gè)域名的DNS解析設(shè)置的后臺(tái)添加一條CDN專用的解析記錄,這條解析記錄會(huì)讓域名被解析之后指向一個(gè)CDN網(wǎng)絡(luò)專用的處理DNS請(qǐng)求的服務(wù)器。并在CDN后臺(tái)設(shè)置域名對(duì)應(yīng)的原始web服務(wù)器(源站)的IP地址
- 輸入U(xiǎn)RL回車后 會(huì)先經(jīng)過(guò)本地DNS解析,DNS系統(tǒng)會(huì)將域名的解析權(quán)給CDN處理DNS請(qǐng)求的服務(wù)器
- 這臺(tái)CDN服務(wù)器會(huì)返回CDN負(fù)載均衡服務(wù)器的IP地址
- 瀏覽器訪問(wèn)這臺(tái)負(fù)載均衡服務(wù)器,該服務(wù)器會(huì)根據(jù)瀏覽器的網(wǎng)絡(luò)地址在CDN網(wǎng)絡(luò)中找一臺(tái)在各種條件下都比較適合提供服務(wù)的CDN服務(wù)器,把IP地址返回給瀏覽器
- 瀏覽器收到后去訪問(wèn)這臺(tái)CDN服務(wù)器,向它請(qǐng)求網(wǎng)站中的文件資源
- 如果這臺(tái)服務(wù)器上沒(méi)有相關(guān)(沒(méi)有緩存)的網(wǎng)站文件,就去CDN網(wǎng)絡(luò)中的上層緩存服務(wù)器中拉取,如果上層還是沒(méi)有就繼續(xù)向上找,如果一直都找不到,最后就會(huì)去源站上拉取網(wǎng)站文件,就是
回源
- 然后在每一層剛才查不到的CDN服務(wù)器上做個(gè)緩存
- 最后這臺(tái)指定為你提供服務(wù)的CDN服務(wù)器再發(fā)送網(wǎng)站文件給瀏覽器,打開(kāi)網(wǎng)站
如果有其他設(shè)備也通過(guò)它來(lái)獲取這個(gè)網(wǎng)站的資源文件,就可以在有緩存的CDN服務(wù)器上直接返回相應(yīng)的文件數(shù)據(jù)了,并不需要每次都去源站上拉取,這就是CDN分發(fā)網(wǎng)絡(luò)的基本工作機(jī)制
用戶訪問(wèn)首先是來(lái)自客戶端或者瀏覽器,這里也會(huì)有一層緩存(強(qiáng)緩存)。大家知道,瀏覽器的緩存都遵循標(biāo)準(zhǔn)的http協(xié)議,指定該header后,到了時(shí)間就會(huì)失效。所以我們可以在源站回源給CDN時(shí),添加如
Cache-Control:max-age=60
協(xié)議頭,CDN會(huì)原封不動(dòng)的透給瀏覽器,這樣瀏覽器就可以實(shí)現(xiàn)1分鐘內(nèi)緩存失效,重新到CDN拉新的資源。
CDN的應(yīng)用場(chǎng)景
CDN技術(shù)廣泛應(yīng)用于互聯(lián)網(wǎng)的各個(gè)場(chǎng)景,如:圖片小文件、大文件下載、游戲加速、視音頻點(diǎn)播、直播流媒體、全站加速、安全加速等。只有純內(nèi)網(wǎng)軟件開(kāi)發(fā)部署場(chǎng)景不需要使用CDN(PS:也有內(nèi)網(wǎng)需要用到CDN的場(chǎng)景的,比如電信IPTV,移動(dòng)OTT,廣電數(shù)字電視這種大內(nèi)容應(yīng)用,服務(wù)屬于廣域網(wǎng)了。)
1. 網(wǎng)站站點(diǎn)/應(yīng)用加速站點(diǎn)或者應(yīng)用中大量靜態(tài)資源的加速分發(fā),建議將站點(diǎn)內(nèi)容進(jìn)行動(dòng)靜分離,動(dòng)態(tài)文件可以結(jié)合云服務(wù)器ECS,靜態(tài)資源如各類型圖片、HTML、CSS、JS文件等,建議結(jié)合對(duì)象存儲(chǔ)OSS存儲(chǔ)海量靜態(tài)資源,可以有效加速內(nèi)容加載速度,輕松搞定網(wǎng)站圖片、短視頻等內(nèi)容分發(fā)
2. 視音頻點(diǎn)播/大文件下載分發(fā)加速支持各類文件的下載、分發(fā),支持在線點(diǎn)播加速業(yè)務(wù),如MP4、flv視頻文件,主要的業(yè)務(wù)場(chǎng)景是視音頻點(diǎn)播、大文件下載(如安裝包下載)等,建議搭配對(duì)象存儲(chǔ)OSS使用,可提升回源速度,節(jié)約近2/3回源帶寬成本
3. 視頻直播加速視頻流媒體直播服務(wù),支持媒資存儲(chǔ)、切片轉(zhuǎn)碼、訪問(wèn)鑒權(quán)、內(nèi)容分發(fā)加速一體化解決方案。結(jié)合彈性伸縮服務(wù),及時(shí)調(diào)整服務(wù)器帶寬,應(yīng)對(duì)突發(fā)訪問(wèn)流量;結(jié)合媒體轉(zhuǎn)碼服務(wù),享受高速穩(wěn)定的并行轉(zhuǎn)碼,且任務(wù)規(guī)模無(wú)縫擴(kuò)展
4. 移動(dòng)應(yīng)用加速移動(dòng)APP更新文件(apk文件)分發(fā),移動(dòng)APP內(nèi)圖片、頁(yè)面、短視頻、UGC等內(nèi)容的優(yōu)化加速分發(fā)。提供httpDNS服務(wù),避免DNS劫持并獲得實(shí)時(shí)精確的DNS解析結(jié)果,有效縮短用戶訪問(wèn)時(shí)間,提升用戶體驗(yàn)
哪些情況推薦使用CDN
- 一般來(lái)說(shuō)以資訊、內(nèi)容等為主的網(wǎng)站,具有一定訪問(wèn)體量的網(wǎng)站資訊網(wǎng)站、政府機(jī)構(gòu)網(wǎng)站、行業(yè)平臺(tái)網(wǎng)站、商城等以動(dòng)態(tài)內(nèi)容為主的網(wǎng)站論壇、博客、交友、SNS、網(wǎng)絡(luò)游戲、搜索/查詢、金融等。
- 提供http下載的網(wǎng)站軟件開(kāi)發(fā)商、內(nèi)容服務(wù)提供商、網(wǎng)絡(luò)游戲運(yùn)行商、源碼下載等。
- 有大量流媒體點(diǎn)播應(yīng)用的網(wǎng)站擁有視頻點(diǎn)播平臺(tái)的電信運(yùn)營(yíng)商、內(nèi)容服務(wù)提供商、體育頻道、寬頻頻道、在線教育、視頻博客等
哪些情況不適用CDN
- 有針對(duì)性、特定性、服務(wù)少數(shù)用戶的用戶群
- 給定地理區(qū)域,本地化的用戶群
- 用戶數(shù)據(jù)敏感、數(shù)據(jù)管轄范圍限制的有監(jiān)管和復(fù)雜的治理要求的
CDN加速是對(duì)網(wǎng)站所在服務(wù)器加速,還是對(duì)其域名加速
CDN是只對(duì)網(wǎng)站的某一個(gè)具體的域名加速。如果同一個(gè)網(wǎng)站有多個(gè)域名,則訪客訪問(wèn)加入CDN的域名獲得加速效果,訪問(wèn)未加入CDN的域名,或者直接訪問(wèn)IP地址,則無(wú)法獲得CDN效果
能不能讓CDN不緩存某些即時(shí)性要求很高的網(wǎng)頁(yè)和圖片
只需要使用動(dòng)態(tài)頁(yè)面,asp,php,jsp等動(dòng)態(tài)技術(shù)做成的頁(yè)面不被CDN緩存,無(wú)需每次都要刷新?;蛘卟捎靡粋€(gè)網(wǎng)站兩個(gè)域名,一個(gè)啟用CDN,另外一個(gè)域名不用CDN,對(duì)即時(shí)性要求高的頁(yè)面和圖片放在不用CDN的域名下
CDN和鏡像站點(diǎn)比較有何優(yōu)勢(shì)
CDN對(duì)網(wǎng)站的訪客完全透明,不需要訪客手動(dòng)選擇要訪問(wèn)的鏡像站點(diǎn),保證了網(wǎng)站對(duì)訪客的友好性。CDN對(duì)每個(gè)節(jié)點(diǎn)都有可用性檢查,不合格的節(jié)點(diǎn)會(huì)第一時(shí)間剔出,從而保證了極高的可用率,而鏡像站點(diǎn)無(wú)法實(shí)現(xiàn)這一點(diǎn)。CDN部署簡(jiǎn)單,對(duì)原站基本不做任何改動(dòng)即可生效
CDN和雙線機(jī)房相比有何優(yōu)勢(shì)
常見(jiàn)的雙線機(jī)房只能解決網(wǎng)通和電信互相訪問(wèn)慢的問(wèn)題,其它ISP(譬如教育網(wǎng),移動(dòng)網(wǎng),鐵通)互通的問(wèn)題還是沒(méi)得到解決。而CDN是訪問(wèn)者就近取數(shù)據(jù),而CDN的節(jié)點(diǎn)遍布各ISP,從而保證了網(wǎng)站到任意ISP的訪問(wèn)速度。另外CDN因?yàn)槠淞髁糠至鞯礁鞴?jié)點(diǎn)的原理,天然獲得抵抗網(wǎng)絡(luò)攻擊的能力
結(jié)語(yǔ)
點(diǎn)贊支持、手留余香、與有榮焉
參考
CDN是什么?使用CDN有什么優(yōu)勢(shì)?- 本站