cdn节点人少延迟高_如何正确配置CDN高速缓存,避免越用越慢的尴尬
越來越多的博客網(wǎng)站開始用到了國內(nèi)的免費CDN了,比如百度云加速、360網(wǎng)站衛(wèi)士、加速樂及云盾等等。之前我也寫文章分享過國內(nèi)低配置VPS的優(yōu)化方案,其中提到了很多站長開啟CDN加速后反而更慢的問題。
文章是這樣描述的:
動態(tài)網(wǎng)頁會越用越慢
很納悶吧?但事實的確是這樣!我們先要弄清楚這些CDN加速的原理:當(dāng)用戶請求我們網(wǎng)頁時,請求會發(fā)到CDN節(jié)點上,如果是動態(tài)數(shù)據(jù),那么CDN節(jié)點將回源站拉數(shù)據(jù),返回給用戶!也就是說數(shù)據(jù)是經(jīng)過了多次轉(zhuǎn)發(fā),加上CDN節(jié)點和源站的延遲,肯定是效果不明顯,而且更慢!
這就不難解釋,總是有人抱怨百度云加速越用越慢,而有人卻說很快了。區(qū)別就是,快的人開啟了云加速的整站緩存,而慢的人只是弄了一個CDN代理轉(zhuǎn)發(fā)而已。
沒錯,如果只是開啟CDN,而不合理的設(shè)置緩存,就會越用越慢。
下面我就分享2種CDN下的配置方案。
一、動靜均緩存
這也是張戈博客之前用到的方案,網(wǎng)站前臺不管是靜態(tài)還是動態(tài),我統(tǒng)統(tǒng)緩存到CDN。那速度絕對可以飛起來。
老版百度云加速以及360網(wǎng)站衛(wèi)士等,都可以非常簡單的搞定這個事情,因為只需要直接勾上需要緩存的類型,比如一般都是讓你勾選【html】 、【目錄】、【首頁】這3種類型,全部選上就可以了。
這里插播2條實用技巧:
①、緩存黑名單
全部選上后,整個網(wǎng)站不管前后臺都會緩存,連后臺都緩存了,那還怎么玩?所以,這些CDN肯定還會支持緩存黑名單,大部分是路徑匹配的,比如360網(wǎng)站衛(wèi)士就可以如下設(shè)置不緩存后臺:
一般都是支持通配的,如果連通配都不支持,那也沒必要使用了。
②、目錄不緩存?
不知道有沒有朋友遇到勾選了目錄緩存之后,你的Wordpress網(wǎng)站的分類和單頁面依然不會緩存,這是為什么?
其實問題在于WordPress的目錄和單頁面地址默認(rèn)是不以斜杠/結(jié)尾的,不是一個標(biāo)準(zhǔn)的目錄形式。而絕大部分CDN定義的目錄是以斜杠結(jié)尾的!
有2個方法來解決這個問題:
如果CDN存在緩存白名單,那么可以設(shè)置強制緩存(略麻煩)
讓W(xué)ordPress的分類目錄和單頁面以斜杠結(jié)尾即可==>詳細(xì)教程
那么,問題來了。新版百度云加速已經(jīng)取消了這種簡單的勾選配置!很多朋友解析到云加速后就放一邊了,結(jié)果速度依然蝸牛,沒有感受到飛的快感。
其實,新版百度云加速需要自己自定義規(guī)則來開啟緩存!下面簡單分享下WordPress在百度云加速下開啟高速緩存的自定義規(guī)則,如圖點擊可進入設(shè)置:
同樣的,根據(jù)前面的黑白名單規(guī)則,我們先定個調(diào),一般網(wǎng)站應(yīng)該是這樣的情況:前臺都緩存、后臺不緩存、個別頁面要緩存或不緩存。
先看下百度云加速自定義規(guī)則的說明:
提示說明: 規(guī)則自定義指對“指定URL”進行頁面級規(guī)則定制(支持通配符*)。可對任意子域名、目錄、甚至單個URL進行針對性的加速緩存、安全防護等配置。列表中上下關(guān)系決定優(yōu)先級,靠上規(guī)則優(yōu)先級高。站長可以通過點擊“↑”調(diào)整優(yōu)先級。新增規(guī)則優(yōu)先級最低,將于30s內(nèi)生效。
URL指定支持通配符*,例如
1) 對img.yoursite.com進行特定設(shè)置,需增加URL: img.yoursite.com/*
2) 對www.yoursite.com/news/?進行特定設(shè)置,需增加URL: www.yoursite.com/news/*
3) 對www.yoursite.com所有html頁面進行特定設(shè)置,需增加URL: www.yoursite.com/*.html
支持通配,這就簡單了!不過免費版只支持3條規(guī)則,這個就需要我們合理斟酌一下了。
優(yōu)先級從上往下依次降低,所以我們要保證不緩存的規(guī)則寫到最上面,才能不會緩存規(guī)則覆蓋。
根據(jù)我個人經(jīng)驗,一般WordPress網(wǎng)站設(shè)置如下3條規(guī)則即可:
①、網(wǎng)站后臺:zhang.ge/wp-admin/* ? 設(shè)置為不緩存或細(xì)致緩存
②、評論分頁:zhang.ge/*/comment-page-* ? ?設(shè)置為不緩存或細(xì)致緩存
③、網(wǎng)站前臺:*zhang.ge* ? ?設(shè)置為前后通配都緩存
Ps:細(xì)致緩存其實就是只緩存靜態(tài)文件,其中緩存時間或有效期請自行設(shè)定即可,無需按圖照辦。另外由于新版百度云加速現(xiàn)在不能對單個域名設(shè)置了,所以最后的緩存規(guī)則是前后通配,保證某些網(wǎng)站的二級靜態(tài)域名也緩存到位。另外,這只是我個人經(jīng)驗推薦的配置,比如評論分頁就可以根據(jù)自己的需要設(shè)置為其他頁面,此處分享僅供參考!
這樣設(shè)置好了之后,網(wǎng)站前臺刷幾下就可以看到效果了,當(dāng)然還可以F12到network里面去看header的緩存命中情況,這就不贅述了。
二、只緩存靜態(tài)
動靜都緩存可以解決國內(nèi)低配VPS的2個尷尬:帶寬和負(fù)載。帶寬問題,國內(nèi)普遍小水管就不用我多說了吧。負(fù)載問題則是WordPress一直以來的詬病,刷新快一點,CPU就滿了。
但是,有一些網(wǎng)站,本地已有緩存或者訪問流量并不高,他們不想開啟全靜態(tài)緩存,因為會帶來的各種數(shù)據(jù)不刷新問題。因此,我們?nèi)绾渭冉鉀Q速度問題,又兼顧實時數(shù)據(jù)呢?
當(dāng)然,開啟CDN不進行整站緩存設(shè)置的話,大部分CDN會默認(rèn)緩存靜態(tài)文件,基本滿足以上需求。但是某些CDN有個坑爹的規(guī)則:他會和諧某些關(guān)鍵詞,訪問有這些關(guān)鍵詞的頁面就提示違規(guī)并不顯示。
如何解決這個問題?很簡單,通過域名做動靜分離即可。
將靜態(tài)鏈接替換為二級域名,并開啟CDN緩存。主域名則不走CDN或走CDN但不開啟緩存。
將靜態(tài)鏈接替換為二級域名應(yīng)該不用我多說了吧?不會的看一下張戈博客之前分享的七牛CDN代碼版即可==>傳送門
主域名不走CDN也很簡單,直接在解析時不開啟緩存即可,也就是直接回源:
如果擔(dān)心暴露IP,如果是阿里云ECS,你還可以CNAME到阿里云的WAF上(這也是張戈博客目前的做法):
走CDN開啟緩存和走CDN禁止緩存應(yīng)該也不用我多說了,上文都有分享規(guī)則。
如上設(shè)置后,你的網(wǎng)站的速度也會很快,當(dāng)然前提是你的動態(tài)部分不卡才行。如果網(wǎng)站還是比較卡,但是你有不想開啟純靜態(tài)導(dǎo)致數(shù)據(jù)不刷新,那么
①、如果是獨立主機,可以考慮開啟redis或opcache等php動態(tài)緩存
②、如果是虛擬主機,可以安裝 DB Cache Reloaded Fix這類數(shù)據(jù)緩存插件
當(dāng)然,如果你覺得還是不夠快,那么推薦和張戈博客一樣,開啟Nginx的fastcgi緩存!
三、總結(jié)下區(qū)別
方案一 和 方案二 到底有什么區(qū)別呢?
方案一 是將動態(tài)和靜態(tài)都強制緩存到CDN,這樣就算本地不開啟任何緩存,用戶的訪問速度也是杠杠的。如果想要給搜索引擎蜘蛛一樣的速度,那么本地最好也開啟一下靜態(tài)緩存。
方案二 則是只緩存靜態(tài)數(shù)據(jù),動態(tài)數(shù)據(jù)依然請求到源服務(wù)器。這樣做的好處是既解決了帶寬尷尬,又解決了前臺數(shù)據(jù)不能實時刷新的問題。因為,占帶寬的主要是靜態(tài)文件,而非html代碼。我們將大體積的靜態(tài)文件托管到CDN加速,源服務(wù)器就只要負(fù)擔(dān)體積很小的html代碼流量了,速度自然就快了!
當(dāng)然,這樣做很容易就出現(xiàn)了前文提到的開啟CDN反問變慢的尷尬。。。解決辦法也很簡單,本地開啟一下動態(tài)緩存即可。
張戈在幫不少站長做網(wǎng)站優(yōu)化時,設(shè)置過百度云加速,發(fā)現(xiàn)大部分站長都不會設(shè)置,然后還對我說為啥你弄過之后就飛起來了,我當(dāng)初使用云加速就卡出翔?其實就是不會設(shè)置而已!所以,今天我分享出來,弱弱的為CDN正名,那些用過之后罵CDN垃圾越用越慢的人,先自己好好反省一下吧!
好了,本文羅里吧嗦說了一大堆,有需求的自然會豁然開朗,沒需求的就會如同嚼蠟了。我敢說,如果你看懂了這些設(shè)置技巧,那么使用任何CDN都會信手拈來,輕松應(yīng)付!
總之一句話,張戈寫文章的期望不高,希望對有需求的人有所幫助就好。
總結(jié)
以上是生活随笔為你收集整理的cdn节点人少延迟高_如何正确配置CDN高速缓存,避免越用越慢的尴尬的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南京理工大学计算机学院教授严捍,2019
- 下一篇: afm原子力分析软件_牛津仪器发布全新大