充分使用Cloudflare

來源: 知乎
作者:Raaynk
時(shí)間:2020-11-30
17770
相信你已經(jīng)聽說,使用CDN能加速網(wǎng)站。如果你使用WordPress,并且服務(wù)器在國外,你對(duì)網(wǎng)站速度的提升一定更加期待。你準(zhǔn)備使用CDN加速你的WordPress網(wǎng)站,卻發(fā)現(xiàn)國內(nèi)的CDN都需要網(wǎng)站備案,而由于種種原因,你暫時(shí)不愿備案。不久,你發(fā)現(xiàn)了Cloudflare,你欣喜地把你的網(wǎng)站添加到Cloudflare,然后滿懷期待地再次打開網(wǎng)站,卻失望地發(fā)現(xiàn),你的網(wǎng)站好像更慢了!怎么回事?這是什么破CDN,還號(hào)稱全球最快??。?/span>

相信你已經(jīng)聽說,使用CDN能加速網(wǎng)站。如果你使用WordPress,并且服務(wù)器在國外,你對(duì)網(wǎng)站速度的提升一定更加期待。你準(zhǔn)備使用CDN加速你的WordPress網(wǎng)站,卻發(fā)現(xiàn)國內(nèi)的CDN都需要網(wǎng)站備案,而由于種種原因,你暫時(shí)不愿備案。不久,你發(fā)現(xiàn)了Cloudflare,你欣喜地把你的網(wǎng)站添加到Cloudflare,然后滿懷期待地再次打開網(wǎng)站,卻失望地發(fā)現(xiàn),你的網(wǎng)站好像更慢了!

怎么回事?這是什么破CDN,還號(hào)稱全球最快???!

先別急著責(zé)怪Cloudflare——這家公司的CDN服務(wù),確實(shí)是大陸以外免費(fèi)CDN中最快的了,其速度甚至超過了一些付費(fèi)CDN。更好的是,Cloudflare不按流量收費(fèi),計(jì)費(fèi)方式只有套餐和網(wǎng)站數(shù)量。

但為什么用了Cloudflare,你的WordPress網(wǎng)站會(huì)更慢呢?

這里有一張草圖,展示了使用CDN后訪客訪問網(wǎng)站的過程。當(dāng)然,我相信網(wǎng)上還有很多比這好得多的圖,但我們暫時(shí)看這張就夠了。

ia_2700000001.jpg

你的客戶先經(jīng)過過程①連接到CDN的服務(wù)器,如果CDN已經(jīng)有客戶所需的緩存,那么這次訪問就直接到過程④,你的客戶收到CDN返回的緩存內(nèi)容。當(dāng)然,我們都知道WordPress的大部分內(nèi)容是動(dòng)態(tài)的,這種情況下,CDN會(huì)再經(jīng)過過程②向你的源站請求數(shù)據(jù),通過過程③從源站取得返回?cái)?shù)據(jù),也就是說相比已緩存的內(nèi)容多了兩個(gè)過程。

本來客戶與Cloudflare的數(shù)據(jù)傳輸就比較耗時(shí)(因?yàn)榇蠖鄶?shù)情況下Cloudflare對(duì)來自大陸的請求只使用美國服務(wù)器處理),而Cloudflare與源站的數(shù)據(jù)傳輸也會(huì)需要一定時(shí)間(WordPress本來就比較慢),所以會(huì)造成使用Cloudflare后網(wǎng)站反而更慢的問題。

簡單回顧一下,使用美國服務(wù)器跑WordPress,慢的原因主要有兩個(gè):一是大陸與美國之間的數(shù)據(jù)傳輸本來就比較耗時(shí),二是WordPress對(duì)請求的處理需要一定時(shí)間。

好了,現(xiàn)在你已經(jīng)清楚CDN是怎么工作的,你也明白慢是因?yàn)槭裁戳?。接下來我們就可以開始“對(duì)癥下藥”了。

你可能已經(jīng)有這種想法了:讓CDN直接緩存你的WordPress網(wǎng)站。這樣不僅可以省掉Cloudflare與源站數(shù)據(jù)傳輸?shù)臅r(shí)間,還可以減少WordPress處理數(shù)據(jù)的時(shí)間,而且由于到源站的請求少了,你服務(wù)器的壓力也可以降低。真是一舉多得。

但是怎么實(shí)現(xiàn)呢?你可能會(huì)看到這種說法,對(duì)WordPress進(jìn)行偽靜態(tài)處理,把頁面改成以html結(jié)尾。但事實(shí)是,偽靜態(tài)并不能幫助你“欺騙”Cloudflare進(jìn)行緩存。況且,Cloudflare本來就不會(huì)對(duì)html文件緩存。

我所采用的方法是這樣的:利用Cloudflare的Page Rules強(qiáng)制緩存頁面。

具體操作是,在Cloudflare管理面板中,切換到Page Rules,點(diǎn)擊Create Page Rules添加。下面是我的配置。

ia_2700000002.jpg

ia_2700000003.jpg

也許你一眼就能看懂我這些配置是在干什么,但我還是想說明一下。

第一條配置,是把所有直接訪問http://raaynk.com的請求通過301轉(zhuǎn)到http://www.raaynk.com;

第二條配置,是把所有以http://www.raaynk.com/wp-admin開頭的請求,標(biāo)記為不緩存,也就是回源;

第三條配置,是把所有前兩條配置以外的所有請求,標(biāo)記為強(qiáng)制緩存,緩存時(shí)間為一個(gè)月。

把http://raaynk.com通過301跳轉(zhuǎn)到http://www.raaynk.com,是因?yàn)槲冶容^懶,不想把跳轉(zhuǎn)寫到Web Server的配置中;

不緩存wp-admin開頭的請求,是因?yàn)檫@是WordPress的后臺(tái),如果緩存會(huì)出大問題;

最后強(qiáng)制緩存,不就是我們一直想干的嗎?把它放在最后,是因?yàn)镻age Rules是有權(quán)重先后的。

前面的配置權(quán)重高于后面的配置。也就是如果前面的配置與后面的配置有沖突,則以前面的配置為準(zhǔn)。

免費(fèi)版的Cloudflare目前只能添加3條Page Rules,但就我們強(qiáng)制緩存的需求來說,足夠了。

當(dāng)然了,你可能會(huì)想,這么多內(nèi)容都緩存到Cloudflare,那豈不是要用Cloudflare的很多空間和流量嗎?哈哈,確實(shí)是這樣的,但Cloudflare表示不會(huì)因?yàn)橛脩羰褂昧烁嗟目臻g和流量而向用戶收取更多費(fèi)用?,F(xiàn)在,是不是發(fā)自內(nèi)心地想要大贊Cloudflare?

作者:Raaynk

鏈接:https://www.raaynk.com/archives/008

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于知乎,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號(hào)登錄/注冊
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家