WordPress 站點如何用好CDN加速?
今天明月就結合自己的經驗給大家講解一下「如何用好CDN加速」,所謂的「用好」其實就是指真正的起到加速的作用,無論是前端的用戶訪問還是伺服器端的穩定運行。 CDN 的核心思想就是「動靜分離」, WordPress 大家都知道,這是一個「動態」的網站平台,如何讓 CDN 只緩存加速 WordPress 的靜態文件就是最關鍵的。
何為動態、靜態
簡單點兒來說,這裡的動態和靜態是只針對伺服器和客戶端瀏覽器來說,動態是指需要伺服器端經過運算調取資料庫後返回的數據,靜態是指以文件形式存儲在伺服器上的數據。從過程上來看動態的效率要低一些,靜態的要高一些,其實就是中間運算和資料庫查詢調用這個環節的差異而已。具體表現到文件一般就是動態的是指php、asp、jsp這類需要伺服器端運算的代碼文件,靜態的一般是指html、jpg、png、jpeg等等這類文件,雖然html也是代碼,但這些代碼都是瀏覽器來運算的,所以對伺服器來說也是靜態的。
至此,大家就明白了, CDN 加速其實就是把伺服器上的靜態文件都放到 CDN 各個節點上面,然後用戶訪問的時候, CDN 會分配一個離用戶最近節點給用戶訪問,這樣就達到了提速的效果。比如:明月是南陽的,當訪問一個採用了 CDN 加速的站點的時候,就會給我分配一個洛陽的 CDN 節點來調用站點相關的靜態文件,這樣當然比到網站伺服器所在地上海去調用要高效的多了。
那麼我們在部署 CDN 的時候只需要做到下面幾點就可以了:
- 1、只讓 CDN 獲取站點的靜態文件資源,也就是緩存規則里要指明只緩存靜態文件,因為這類靜態文件一般都不會頻繁的修改,所以建議緩存時間可以設定長一些,一般7天為宜。
- 2、 WordPress 站點一定要開啟「偽靜態化」,也就是讓 WordPress 呈現的網頁最好是.html文件。
- 3、伺服器端要保證對 CDN 節點是開放的,也就是要將 CDN 節點IP加入到伺服器防火牆「白名單」里,否則 CDN 會頻繁的回源伺服器(造成這個主要原因就是伺服器防火牆有時候會把 CDN 節點給攔截掉,所以加到「白名單」就可以規避這個問題了),造成伺服器負載增加甚至宕機被關停。
很多站長們在部署 CDN 的時候都是做到了前兩條,忽略了最後一條,雖然有的時候也是可以正常使用的,但是一旦 CDN 某個節點出現運算錯誤頻繁回源就會出現伺服器負載瞬間加大,如果是虛擬主機的話就會被運營商關停(比如萬網的虛擬主機等。),同時還會在 CDN 後台的統計里出現回源率高的現象也就是 CDN 緩存命中率奇低的問題。只要做到上述三點基本上你的 CDN 部署已經是成功的了。剩下的就是讓 CDN 慢慢的來根據用戶訪問情況自動緩存即可, CDN 用的越久其加速表現越好就在這裡,只有用戶訪問請求的 CDN 才會讓節點去調用伺服器上的資源。這些資源在節點上保存的越多, CDN 緩存命中率就越高,加速效果也就越明顯。
(PS:如果是個喜歡折騰的站長,比如經常會改動站點主題的CSS、JS文件的可以 CDN 控制後台里取消CSS、JS文件的緩存即可,畢竟頻繁的讓 CDN 更新緩存會對伺服器造成一定的負載壓力的。)
關於最後一條里提到的[將 CDN 節點IP加入到伺服器防火牆「白名單」里],這點對於使用「虛擬主機」的站點是需要伺服器管理員來操作的,一般為了安全考慮都不願給添加的,這個目前明月也沒有很好的辦法。至於說使用ECS類雲主機的必須自己手動的來添加了,但是,添加之前一定要搞清楚自己的ECS主機使用的默認防火牆是什麼以及如何使用等等問題,明月建議是使用Linux默認的iptables作為你伺服器的默認防火牆,因為iptables實在是太強大了,好處很多。但這些需要你具備一定的Linux命令行操作的基本知識的,當然大家也可以藉助「百度、谷歌」來搜索到眾多的相關教程,雖然這些看似很複雜,但是要記得「一次折騰、受用終生」哦。
因為各個 CDN 服務商的IP節點都不相同,為了方便大家導入到防火牆「白名單」,明月就將自己長久以來收集整理的各個主流 CDN 服務商的 CDN 節點導入sh腳本文件分享給大家,這些節點IP都是官方公開的保證安全有效的,當然,官方後續的更新大家可以諮詢各個 CDN 服務商的在線客服獲取後用文本編輯軟體替換就可以了。
百度雲盤下載
大家可以根據自己使用的 CDN 來選擇對應的.sh文件的,文件名我都是用的拼音,自己判斷選擇吧。.sh下載後可以通過FTP上傳到網站根目錄里,在Linux控制終端里通過命令:sh xxxxx.sh 來運行導入的。具體使用方法,我就不多做贅述了,大家自己百度學習吧。
本教程對於HTTPS的 CDN 加速同樣是適用的,明月自己就一直是這樣來部署 CDN 使用的,都是經過實踐的哦!重點和難點其實就是Linux控制台終端上的命令行操作了以及iptables的規則保存、修改、啟用這些,這些網上太多相關教程了,大家自行百度「腦補」吧。ECS主機一般都是用CentOS作為主要操作系統的,大家可以參考【CentOS 7.0關閉默認防火牆啟用iptables防火牆】一文里的方法來啟用iptables防火牆。我能幫你的也就這些了,具體的大家多「百度或者谷歌」一下吧。
推薦閱讀:
※WP Super Cache 和 W3 Total Cache 緩存插件使用 memcached 提升性能
※這一次,我不會推薦您使用CDN服務
※讓Python加速的方法,及一些優化代碼的工具(NumPy,PyPy,PyCUDA和Cython等)。