CloudFlare 免費 CDN 伺服器使用教學,加速網站載入速度,阻擋惡意流量

這裡介紹 CloudFlare 這個免費的 CDN 服務,它可以有效加速網站載入速度,並且阻擋惡意流量,還可以代管 DNS。


如果要讓網頁的載入速度更快,除了使用快取技巧(如 WordPress 的 ZenCache plugin)、減少動態網頁與資料庫查詢之外,還有一個很常見的方式就是使用內容傳遞網路(content delivery network,簡稱 CDN)伺服器,分散網頁伺服器的負載,縮短資料傳送距離,達到加速的目的。

通常一般的網站只要加上 CDN 之後,都可以有效提升網頁的載入速度,所以現在大多數的網站都會使用這樣的服務來改善訪客的使用者經驗,網路上有許多免費與付費的 CDN 服務,其中 CloudFlare 是一個最熱門、最普遍的 CDN 服務,如果您不想花錢購買付費的 CDN,那麼 CloudFlare 可以說是首選。

CloudFlare 的伺服器遍佈全球,除了可以有效降低資料傳遞距離之外,還具了備阻擋惡意留量的功能,以及代管 DNS 的服務,由於它的服務品質基本上已經有付費 CDN 的水準,所以有非常多的大型網站都選擇使用 CloudFlare。

cloudflare-cdn-network-map

註冊 CloudFlare

以下是 CloudFlare 的註冊與使用方式。

Step 1
開啟 CloudFlare 的註冊網頁,填入自己的電子郵件信箱,自己取一個帳號名稱,並設定密碼。

cloudflare-cdn-1

Step 2
填入自己的網域名稱。

cloudflare-cdn-2

這裡是要填網域名稱,不是主機名稱,CloudFlare 隨後會代管整個網域的 DNS。

Step 3
CloudFlare 會自動掃描整個網域下面的 DNS 紀錄,這裡會顯示掃描的結果,請仔細檢查是否有遺漏任何的 DNS 紀錄,若有遺漏的話,可以自己補上去。

cloudflare-cdn-3

由於我們要讓 CloudFlare 代管整個網域的 DNS,所以一定要檢查仔細,如果漏掉一些重要的 DNS 紀錄,可能會讓網站整個斷線。

Step 4
選擇適合自己的方案,第一次使用的話,建議用預設值就好了,這個之後也可以再改。

cloudflare-cdn-4

Step 5
接著要準備修改 DNS 伺服器,先將這裡的兩台 DNS 伺服器複製起來。

cloudflare-cdn-5

這裡我的 DNS 伺服器是 guss.ns.cloudflare.comlisa.ns.cloudflare.com,每個網站在註冊時可能都會不一樣。

Step 6
修改自己原本的 DNS 伺服器設定,這裡以 GoDaddy 做示範。開啟網域的 Settings 頁面,找到 nameservers 設定的部分,點選 Manage。

cloudflare-cdn-6

Step 7
將 nameserver 改為上面 CloudFlare 所提供的那兩台。

cloudflare-cdn-7

修改好並儲存之後,通常要等一段時間才會生效。

Step 8
在等 DNS 的 nameserver 設定生效之後,在 CloudFlare 網頁上,剛剛加入的網域就會顯示一個綠色的小勾勾,這樣就表示設定完成了。

cloudflare-cdn-8

流量報表

設定好 CloudFlare CDN 之後,所有網站的流量都會經過 CloudFlare CDN 伺服器再連到我們的伺服器,而所有資料的快取與惡意流量的阻擋問題,CloudFlare 都會自動處理。過了一段時間之後,可以回來 CloudFlare 的網頁上瀏覽網頁流量的報表。

cloudflare-cdn-9

在流量的報表中,除了基本的流量統計之外,還有惡意流量阻擋次數,以及透過快取所節省的流量。

cloudflare-cdn-10

開發模式

由於 CloudFlare 會使用快取的方式將網頁暫存在 CDN 伺服器上,如果原始的網頁有變動時,一定會有一段更新的時間差,這個對於一般的訪客而言問題不大,但是如果是網站管理人員在修改網頁時,無法及時檢視更新的內容,會造成開發上的困擾,這時候就可以點選右方的齒輪圖示,啟用 CloudFlare 的開發模式(development mode)。

cloudflare-cdn-11

啟用開發模式之後,網站的所有變動都會立即被顯示出來,以利於開發者及時查看修改的結果。開發者模式預設會持續三個小時,三小時之後 CloudFlare 會自動恢復成正常的快取模式,當然您也可以自己手動切換。

最佳化與安全性設定

在 CloudFlare 的設定(settings)頁面中,有非常多關於安全性防護與效能最佳化的選項可以調整,例如 DDoS 防護、Email 位址的 obfuscation、快取時間、HTML/JavaScript/CSS 的最小化等等,您可以針對各種功能個別做設定。

cloudflare-cdn-12

因為這裡的選項非常多,如果不想逐一調整(或是您根本搞不清楚這些是什麼),可以使用既有的 profile 套裝設定,直接選擇安全性的高低以及最佳化的層級就好,剩下的 CloudFlare 會自動調整。

另外這裡有一個「Purge cache」按鈕,可以讓您手動清除所有的快取。

WordPress 與 CloudFlare

如果您的網站是使用 WordPress 架設的話,加上 CloudFlare CDN 之後,所有的訪客在留言時所記錄的 IP 位址會都變成 CDN 的位址,這個問題可以藉由安裝 CloudFlare 的 plugin 來解決。

CloudFlare 的 WordPress plugin 除了可以讓訪客的 IP 位址正常顯示之外,他也可以整合 WordPress 的垃圾留言資訊,提供給 CloudFlare 作為參考,加強網站的防護措施。

使用 ping 實測

在我的設定中,blog.gtwang.orgftp.gtwang.org 完全是同一台機器,而只有 blog.gtwang.org 這台有使用 CloudFlare 的加速,ftp.gtwang.org 因為是 FTP 上傳檔案使用的,所以沒有使用 CloudFlare 的 CDN,以下是以 ping 測試的結果。

cloudflare-cdn-14

在加上 CDN 之後,理論上用 ping 來測試網頁伺服器的話,都會比較快一些,不過因 DNS 在修改之後,需要等待一段時間才會生效,而這個時間的長短會跟自己的 DNS 設定有關(也就是 TTL),我是等一天之後才測試的。

參考資料:Fundesigner

免費, 網頁開發

11 留言

  1. 不知要不要与wp-super-cache插件一起使用呀??

    • G. T. Wang

      CDN 與 WordPress 的 cache plugin 是獨立的,要不要一起使用都可以。

  2. 它对DDOS攻击防范能力有多强?

    • G. T. Wang

      防範能力多強,這個我就不是很清楚了。

    • 理論上防禦能力全球前五 但是你要付的起錢,攻擊大於你付費的等級,她會把流量轉給你自己.

  3. Alan

    但台灣有CDN的機房嗎,如果沒有會不會反而更慢?因為被導向國外

    • G. T. Wang

      您說的沒錯,確實會有這個問題。

      以我個人的經驗,台灣的流量會被導向至香港的主機,所以如果您的網站主機在台灣,而且也只服務台灣的訪客,可能不要使用 CDN 會比較快。

    • G. T. Wang

      這個新結點我之前也有注意到,看起來現在已經啟用了,真是個好消息!

      只是目前似乎不是所有台灣的流量都會導向新的台灣節點,我猜可能還處於測試階段。這是我今天開啟 https://www.cloudflare.com/cdn-cgi/trace 的測試結果:

      fl=23f43
      h=www.cloudflare.com
      ip=xxx.xxx.xxx.xxx
      ts=1460358240.752
      visit_scheme=https
      uag=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
      colo=HKG
      spdy=h2
      http=h2
      loc=TW

      • Mayu

        取消了 Taipei 節點,主因是 HiNet 互連收費太貴了,所以原本有買 Pro 版是不影響,維持有 Taipei 節點,若不是 Pro 版的話,會強制轉到北美節點去。

  4. Pro 的目前在 Hinet 線上是繞到國外的,Business Plan 開始才有 TPE 可以用

Comments are Closed