用Cloudfront加速網(wǎng)站,打開速度瞬間提升300倍,一文弄懂CDN

什么是CDN
內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)是一個(gè)互連服務(wù)器網(wǎng)絡(luò),依靠數(shù)以萬計(jì)的邊緣服務(wù)器群和強(qiáng)大的數(shù)據(jù)吞吐量,可加快數(shù)據(jù)密集型應(yīng)用程序的速度,包含但不限于你的手機(jī)應(yīng)用,你的節(jié)點(diǎn)、你的網(wǎng)站等,但是本次,我們只討論網(wǎng)站加速!
CDN的優(yōu)勢
****首先,CDN用肉眼可見的速度加快你網(wǎng)站的加載和打開速度:
我用一張圖片來舉例:
這是沒有cdn的情況,三次wget速度如下:
image-1536x864.png.4 ? ? ? ?100%[==========================================>] 234.15K ? 221KB/s ? ?in 1.1s ?
image-1536x864.png.5 ? ? ? ?100%[==========================================>] 234.15K ? 368KB/s ? ?in 0.6s ?
image-1536x864.png.6 ? ? ? ?100%[==========================================>] 234.15K ? 273KB/s ? ?in 0.9s
這個(gè)是已經(jīng)使用了cdn的情況,四次wget速度如下:
image-1536x864.png ? ? ? ? ?100%[==========================================>] 234.15K ? 402KB/s ? ?in 0.6s
image-1536x864.png.1 ? ? ? ?100%[==========================================>] 234.15K ?--.-KB/s ? ?in 0.009s
image-1536x864.png.2 ? ? ? ?100%[==========================================>] 234.15K ?--.-KB/s ? ?in 0.003s
image-1536x864.png.3 ? ? ? ?100%[==========================================>] 234.15K ?--.-KB/s ? ?in 0.003s
可見,一個(gè)圖片文件本地打開時(shí)間從1秒減小到0.03秒,提高了300倍;
****降低帶寬成本
一般情況下,購買服務(wù)器都有帶寬和流量限制,帶寬例如:峰值5M的,共享100M的,共享1G的;流量限制例如:500G/月,1T/月等;這些限制我們都可以用CDN來輔助解決,因?yàn)镃DN 可以減少源服務(wù)器請(qǐng)求,從而降低網(wǎng)站托管成本。
****提高內(nèi)容可用性,可實(shí)現(xiàn)無縫訪問
CDN 服務(wù)可以處理更多 Web 流量并降低 Web 服務(wù)器的負(fù)載。此外,如果一臺(tái)或多臺(tái) CDN 服務(wù)器離線,其他運(yùn)營服務(wù)器可以替換它們,以確保服務(wù)不中斷。
****再有就是提高網(wǎng)站安全性
對(duì)于DDoS攻擊,CDN 可以通過在多個(gè)中間服務(wù)器之間分配負(fù)載來處理此類流量峰值,從而降低對(duì)源服務(wù)器的影響。
CDN的原理
簡單來說,CDN 的主要是將原始服務(wù)器上的內(nèi)容緩存到全球分布的邊緣服務(wù)器上,當(dāng)用戶請(qǐng)求訪問某個(gè)網(wǎng)站時(shí),CDN會(huì)自動(dòng)將請(qǐng)求定位到距離用戶最近的邊緣服務(wù)器,從而提高用戶的訪問速度和體驗(yàn)。
如果該邊緣服務(wù)器上已經(jīng)緩存了用戶所請(qǐng)求的內(nèi)容,則直接返回給用戶。否則,邊緣服務(wù)器會(huì)向原始服務(wù)器發(fā)起請(qǐng)求,并將結(jié)果緩存到自己的服務(wù)器上。

如果原始服務(wù)器上的內(nèi)容發(fā)生了變化,CDN會(huì)在一定的時(shí)間內(nèi)將更新通知到所有緩存了該內(nèi)容的邊緣服務(wù)器上。
CDN服務(wù)推薦
CDN既然有這么多優(yōu)勢,價(jià)格怎么樣呢?
CDN廠家一般都是按下行流量計(jì)費(fèi)方式,自然月累計(jì)階梯計(jì)價(jià)。比方說,百度智能云CDN:

阿里云國際CDN全站加速,可以按照峰值帶寬計(jì)費(fèi),也可以選擇流量計(jì)費(fèi)套餐:

流量階梯(計(jì)費(fèi)單位:元/GB)
到目前為止,我還真沒見過個(gè)人博客超過流量1TB/月的情況,圖片展視頻站那肯定要超過了,價(jià)格自己算算,另外還有,阿里騰訊百度CDN國內(nèi)加速必須備案,阿里有半年免費(fèi)試用。
下面,就是今天的主角登場了:
AWS CloudFront CDN簡介
Amazon CloudFront (CFT)使用了一個(gè)包含 450 多個(gè)接入點(diǎn)和 13 個(gè)區(qū)域邊緣緩存的全球網(wǎng)絡(luò),該網(wǎng)絡(luò)覆蓋 48 個(gè)國家/地區(qū)的 90 多個(gè)城市。在中國的邊緣節(jié)點(diǎn)包括:中國上海(1 個(gè));中國深圳(1 個(gè));中國中衛(wèi)(1 個(gè));中國北京(1 個(gè));中國香港(4 個(gè))完全可以用于國內(nèi)站點(diǎn);至于歐美那就更不用說了!
下圖是CFT的邊緣緩存、邊緣節(jié)點(diǎn)地圖:

無論你在世界的哪里,CFT基本上保證1秒觸及,讓網(wǎng)站流暢到飛~比較知名的新聞?wù)綬euters,上個(gè)視頻介紹過的slack,流媒體hulu使用的就是CFT服務(wù)。
最重要的,CFT有1TB/月的流量而且永久免費(fèi),這對(duì)小站長來說是個(gè)大大的福利,我們只要付超出1T流量的費(fèi)用即可,CFT的定價(jià)請(qǐng)參考:https://aws.amazon.com/cn/cloudfront/pricing/?nc=sn&loc=3
仔細(xì)算算,CFT基本上不用花錢的!
馬上注冊(cè)AWS
注冊(cè)地址:https://aws.amazon.com/cn/free/
注冊(cè)方法我以前也做過視頻,詳細(xì)講解過,此處略!
CFT的設(shè)置
CloudFront設(shè)置非常簡單,名詞解釋和設(shè)置方法可參考官方文檔:https://aws.amazon.com/cn/blogs/china/configure-amazon-cloudfront-to-accelerate-the-whole-site/
如果對(duì)于靜態(tài)站點(diǎn),可直接在CFT后臺(tái)直接創(chuàng)建分配,僅僅需要設(shè)置源域,價(jià)格級(jí)別,協(xié)議策略即可,其他保持默認(rèn)即可創(chuàng)建成功;
動(dòng)態(tài)網(wǎng)站,我來說說比較流行的Wordpress,有個(gè)更簡單的方法就是使用插件。后臺(tái)搜索WPAdmin AWS CDN,作者:WPAdmin,請(qǐng)不要自作主張,如果你直接搜索CDN插件錯(cuò)誤安裝了W3 Total Cache的話,價(jià)格$99/年,暫時(shí)用不到。
當(dāng)你完成了WPAdmin AWS CDN的安裝,已經(jīng)有了AWS賬號(hào)之后,到 IAM賬戶管理,添加IAM賬戶。當(dāng)然,你在已經(jīng)登陸的賬戶中創(chuàng)建反問密鑰也可以,但是為了方便管理,我建議添加一個(gè)。
在用戶中,我們添加一個(gè)用戶,名字隨便,權(quán)限我們選擇直接附加策略,勾選ccessAnalyzerServiceRolePolicy,然后下一步下一步就完成了。
接著,在新用戶的安全憑證中,我們創(chuàng)建該用戶的訪問密鑰,請(qǐng)保密存儲(chǔ);
注意:aws地區(qū)不同,后臺(tái)版本不同,上面的步驟有些許不同,思路一樣自己找找!
然后,我們到wp后臺(tái)設(shè)置插件,輸入密鑰,開啟CDN。
在這個(gè)插件新開啟CDN時(shí)候,aws后臺(tái)的cloudfront會(huì)自動(dòng)創(chuàng)建一個(gè)分配,需要等待2-3分鐘后可用,
當(dāng)我們測試后,會(huì)顯示 XXXX.cloudfront.net is Currently Active,說明開啟完成了。
現(xiàn)在,插件會(huì)把你網(wǎng)站的css、js、jpg、png、視頻等靜態(tài)資源地址自動(dòng)改成你的分配地址,CFT也會(huì)根據(jù)用戶請(qǐng)求開始緩存你的資源,不久,你會(huì)發(fā)現(xiàn)網(wǎng)站打開速度飛了起來!
總結(jié)
Cloudfront CDN明顯提升用戶體驗(yàn),減輕源服務(wù)器壓力有奇效,這對(duì)于一個(gè)想要長期堅(jiān)持做站的朋友是非常有幫助的,媽媽再也不用擔(dān)心我的服務(wù)器太遠(yuǎn)了,因?yàn)槲覀冇辛薈DN。
參考資料:百度百科,aws docs
原文地址:https://iweec.com