說到CDN網(wǎng)頁加速服務(wù),可能很多同學(xué)不是很了解,難道說網(wǎng)頁打開的速度不都是一樣的嗎?按照一般的思維,當(dāng)一個(gè)訪客想打開某個(gè)目標(biāo)網(wǎng)站,那么計(jì)算機(jī)的工作原理應(yīng)該是這樣的:訪客瀏覽器發(fā)送頁面請求給目標(biāo)頁面的主機(jī)—主機(jī)進(jìn)行安全性和內(nèi)容需求檢查—目標(biāo)網(wǎng)站主機(jī)將內(nèi)容數(shù)據(jù)包發(fā)送給訪客主機(jī)—主機(jī)解析接受到的內(nèi)容數(shù)據(jù)包—訪客看到所需的內(nèi)容頁面。
我們先不說這個(gè)過程正確不正確,先來了解一下什么是CDN網(wǎng)頁加速服務(wù)
CDN的全稱是:Content Delivery Network,也就是中文的內(nèi)容分發(fā)網(wǎng)絡(luò)。是構(gòu)建在現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)之上的智能虛擬網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過中心平臺(tái)的負(fù)載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。CDN的關(guān)鍵技術(shù)主要有內(nèi)容存儲(chǔ)和分發(fā)技術(shù)(以上內(nèi)容來自百度)。
我們來打個(gè)比方:原先唐僧去西天大雷音寺要走十萬八千里才能取得真經(jīng),因?yàn)檎娼?jīng)的內(nèi)容不會(huì)有什么變化所以可以用副本的形式多保存幾份在各個(gè)地方,這時(shí)候如來佛感念唐僧取經(jīng)的辛苦,就將其中一份真經(jīng)副本放在了西安的大雁塔,這樣唐僧就不用再辛苦的走十萬八千里去西天取經(jīng),只需要從住的地方到大雁塔走個(gè)來回就可以了。從十年悲苦到短短幾分鐘,所得到的真經(jīng)內(nèi)容是一樣的,這個(gè)過程就是免備案CDN加速服務(wù)。
接下來我們一起了解下目前有哪些服務(wù)商提供CDN網(wǎng)頁加速服務(wù)
一.Cloudflare
CF是目前市場上使用數(shù)量最多的CDN網(wǎng)頁加速服務(wù)器,國內(nèi)的各大wordpress建站教程博客網(wǎng)站也都對其大家贊賞,包括Jack老師目前用的也是CF的服務(wù)。但CF是否真的如大家所說的這么好呢?
我個(gè)人的感覺是不盡然,之前Jack老師專門寫過一篇文章,講述了bluehost主機(jī)和namesilo域名在使用CF的CDN加速服務(wù)的時(shí)候,會(huì)存在無法正確安裝SSL安全證書的情況,(當(dāng)然,我用實(shí)操教程講述了如何解決該問題,有興趣的同學(xué)可以去看這篇文章《如何解決bluehost主機(jī)使用cloudflare后的SSL安全證書的問題》)。
CF的最大優(yōu)勢就是在于其全球范圍內(nèi)的上百個(gè)數(shù)據(jù)中心,通過其緩存處理技術(shù),還有免費(fèi)的使用套餐,使得它坐穩(wěn)了全球CDN服務(wù)商的第一把交椅!
二.Imperva
Imperva CDN對很多外貿(mào)建站的同學(xué)來說可能會(huì)感覺有些陌生。它采用專有的AI學(xué)習(xí)技術(shù),可以有效地緩存動(dòng)態(tài)生成的頁面,同時(shí)確保內(nèi)容的新鮮度。該技術(shù)顯著提高了緩存利用率,并進(jìn)一步減少了帶寬消耗。
Imperva除了對文件進(jìn)行自動(dòng)壓縮外(Jack老師沒有深入研究它用的是什么壓縮技術(shù),初步判斷應(yīng)該是用Gzip壓縮),會(huì)話重用和TCP連接之外,還利用使用頻率分析來確保對最常訪問的文件進(jìn)行優(yōu)先級排序,并直接從RAM中提取文件。
這就好比你將修車的常用扳手放在身邊,這樣你的修車速度就會(huì)更有效率。此外要說一下Imperva目前采用的是HTTP/2協(xié)議,消除了舊版TLS/SSL版本中存在的漏洞(目前很多服務(wù)商還在采用http/1.0的訪問協(xié)議)。
三.Jetpack
Jetpack可不僅僅是CDN加速服務(wù)器這么簡單,是一款集各項(xiàng)谷歌SEO優(yōu)化工具功能為一體的全面優(yōu)化工具。有興趣的同學(xué)可以去看看Jack老師寫的這篇文章《外貿(mào)建站必備插件Jetpack》。
這么說吧,如果非要將所有的谷歌SEO優(yōu)化工具排個(gè)名次的話,我可能會(huì)將其拍在前5名的位置。Jetpack的免費(fèi)使用版本中已經(jīng)包含了免備案CDN加速的部分功能,當(dāng)然了付費(fèi)版本的CDN加速能力更加強(qiáng)大。但它的優(yōu)勢也是它的劣勢,正因?yàn)樗胨械墓δ芏济婷婢愕剿詫?dǎo)致了Jetpack的CDN加速功能并不顯得非常突出。
四.swarmify
Swarmify不是傳統(tǒng)意義上的CDN加速服務(wù)器,它的專業(yè)優(yōu)勢側(cè)重于視頻播放領(lǐng)域。大家都知道,因?yàn)橐曨l文件一般都比較大,所以加載速度都會(huì)比較慢。雖然有很多可以支持?jǐn)帱c(diǎn)式內(nèi)容加載,但是也不能夠很好的解決視頻卡頓的問題。
可能有的同學(xué)會(huì)說那用其他的緩存優(yōu)化工具,比方說Lazy下載或者異步下載是不是能解決這個(gè)問題?首先,這種方法確實(shí)能夠在某種程度上解決上述的問題,但是效果并不是特別好,除非說你的視頻內(nèi)容比較小,只有幾秒或者十幾秒的內(nèi)容長度。
如果涉及到十幾分鐘或者幾十分鐘的視頻內(nèi)容,那么效果就會(huì)比較差了。所以你想做一個(gè)大型的視頻站的話,Swarmify應(yīng)該是你最佳的選擇!
五.AWS Cloudfront
AWS Cloudfront是亞馬遜旗下的CDN加速服務(wù),類似于馬云阿里巴巴旗下的阿里云服務(wù),雖然阿里云近些年來做的確實(shí)是越來越好,但實(shí)事求是的講一句,目前階段的阿里云距離AWS的功能和服務(wù)還是有一定差距。
至于百度云和騰訊云差的就更遠(yuǎn)了。這里沒有長他人志氣滅自己威風(fēng)的意思,只是說兩者還是有差距,希望在未來我們也能自豪的說,國內(nèi)的云服務(wù)能力獨(dú)步天下,AWS這些都是落后分子了。AWS Cloudfront目前推出的是一年的免費(fèi)試用計(jì)劃,一年到期后需要續(xù)費(fèi)。
Jack老師之前用過AWS的其他相關(guān)服務(wù),但是沒有用它的CDN所以也不好多說什么,畢竟沒有實(shí)踐就沒有發(fā)言權(quán)嘛,不過從AWS的其他服務(wù)來看還是比較令人滿意的,有興趣的同學(xué)可以嘗試一下!
六.Google Cloud CDN
Google Cloud CDN可是谷歌的親兒子,一些相關(guān)的設(shè)置方面比較貼合谷歌搜索引擎的偏好。為此,Cedexis將它們排在了全球最快SSL CDN榜單的第一位。
如果單從全球節(jié)點(diǎn)上來說,Google CDN目前應(yīng)該是只有90幾個(gè)比Cloudflare的一百多個(gè)略少一些,但它與大多數(shù)CDN不同的是,如果使用了它的CDN加速服務(wù),我們的網(wǎng)站將具有一個(gè)通用的IP地址,既能實(shí)現(xiàn)全球一致的出色性能,又方便管理(無需使用區(qū)域DNS)。
在請求協(xié)議方面google CDN目前是適用Http/1.0;Http/1.1以及最新的Http/2.0協(xié)議版本,最大限度的兼容了相關(guān)請求。
七.Microsoft Azure CDN
Microsoft Azure CDN是微軟旗下的CDN加速服務(wù),雖然一直用的是微軟的免費(fèi)操作系統(tǒng)和相關(guān)辦公組建,但也阻止不了我吐槽它,特別是微軟的相關(guān)服務(wù)收費(fèi)標(biāo)準(zhǔn),真心不是一般的小老百姓所能承受的。
目前階段的Microsoft Azure CDN是提供12個(gè)月的免費(fèi)服務(wù),這個(gè)和亞馬遜的AWS是一樣的,雖然總體上來看,Azure CDN的價(jià)格可能比AWS的CDN還稍微便宜點(diǎn),但我大體的看了下相關(guān)的服務(wù)項(xiàng)目,基本沒用什么特別值得夸耀的地方。如果非要二選一,那我會(huì)選擇AWS CDN
八.Cloudinary
Cloudinary在CDN領(lǐng)域是以精尖專為特色的代表,特別是在圖像優(yōu)化傳輸領(lǐng)域,有點(diǎn)獨(dú)步天下的意思。這就好比剛才我們前文介紹的Swarmify CDN一樣,都是各自在專門的一小塊領(lǐng)域提供專業(yè)的服務(wù),因?yàn)樯婕暗拿婧蛢?nèi)容相對較小,所以會(huì)讓使用者有一種非常專業(yè)的使用感。
正如它的官網(wǎng)所介紹的那樣,Cloudinary可以從任何來源以任何規(guī)模安全地上傳和存儲(chǔ)所需數(shù)量的圖像和視頻。使用功能強(qiáng)大的API可以直接從用戶的瀏覽器或移動(dòng)應(yīng)用中快速上傳。自動(dòng)備份,歷史修訂和靈活的存儲(chǔ)選項(xiàng)可讓您輕松自在的完成網(wǎng)頁速度加載優(yōu)化工作。
九.jsDeliver
jsDelivr是一個(gè)公共CDN,任何Web開發(fā)人員都可以在其中上傳和托管自己的文件。最關(guān)鍵之處在于jsDeliver使用真實(shí)用戶指標(biāo)(RUM)來準(zhǔn)確地負(fù)載均衡多個(gè)CDN提供程序之間的流量。
它的工作原理和Cloudflare CDN還有點(diǎn)不太一樣(順便提一下,Cloudflare CDN也是jsDeliver的贊助商之一),Jack老師對這方面技術(shù)不是特別了解,有興趣的同學(xué)可以到這里來了解一下它的工作原理,點(diǎn)擊此處查看jsDeliver工作原理圖
十.Keycdn
原本不想把Keycdn放在文末來講的,一開始Jack老師有接觸過Keycdn,主要是想比較一下Keycdn和Cloudflare CDN之間的工作差別和效率,但是后面Keycdn給我的感覺并不是特別好,加上Keycdn還需要付費(fèi)才能正常使用(目前提供的是14天的免費(fèi)試用版本,無需綁定信用卡)。
所以我毅然的選擇了Cloudfalre CDN作為我的首選網(wǎng)頁加載速度優(yōu)化方案。再加上之前有幾位同學(xué)和我反映說Keycdn使用起來確實(shí)不太地道,所以在文末寫一下,以免更多的同學(xué)在不知道的情況下入坑!