Cloudflare 是少數提供 CDN 免費無限流量的平台,免費版就已經提供了許多建立網站所需的功能,例如:CDN 加速、DNS 代管、靜態資源快取、SSL 憑證、網頁壓縮、DDOS 攻擊防護......等等,這麼多且實用的免費服務,事實上我目前也找不到第二個了。

免費版提供的功能,又以 CDN 加速及 DDOS 攻擊防護最常被關注,只要提到 Cloudflare 大家一定會聯想到這是在做網頁加速或攻擊防護。 當您的網站流量還不大的時候,您可能不需要 DDOS 攻擊防護,但您絕對需要網頁加速功能,誰不希望自己的網站可以跑快一點呢? 而這兩項重要功能都是在免費版就已經提供了,對於網站架站者來說,Cloudflare 無疑的是一個相當實用的資源。

CDN 是什麼?能做什麼?

CDN 中文翻譯為內容傳遞網路,是一組分佈在世界各地的伺服器,一起協同工作讓網路資源可以快速交付的網路架構。 其原理簡單來說,就是將您的網頁資源,從您的伺服器複製到世界各地的 CDN 端點進行快取,當使用者要瀏覽您的網站時,會優先從使用者所在地鄰近的 CDN 端點返回資料,而不是從遙遠的伺服器返回,藉此來加速網站的載入速度。

舉個例子,一般個人架站為了節省經費,大多會選擇購買國外網頁空間。假設您購買位於美國的伺服器來架設網站,當台灣使用者要瀏覽您的網站時,瀏覽器會先連到美國的伺服器,再返回資料至瀏覽器並呈現畫面。 當您的網站遷移至 Cloudflare CDN 網路之後,由於 Cloudflare 在台灣的台北具有 CDN 端點,此時台灣的使用者要瀏覽您的網站,就不用連到美國了,而是直接從台北的 CDN 端點返回資料。 很明顯,有 CDN 網路之後,理論上是可以大幅提升網路速度的。

由於 CDN 網路必需在世界各地設有端點,端點越多效果越好,因此普通的中小企業是不可能有財力架設自己的 CDN 網路。 所以一般使用者都是直接購買大公司所維護的 CDN 服務,而這項服務幾乎都是要收費的,Cloudflare 真的是極少數免費提供 CDN 無限流量的廠商。

CDN 網路優點

  • 加快網站載入速度
  • 負載平衡,減少伺服器負擔
  • DDOS 攻擊防護,過濾流量
  • 伺服器故障時,短時間內網站還是能正常瀏覽

Cloudflare 帳號註冊

請先到 Cloudflare 官網的註冊頁面,註冊一個帳號。如果點擊下面連結開啟的是英文畫面,可以點畫面右上角選單切換成中文。

註冊完成之後,馬上就能看到下方畫面。

接下來,請先至信箱收驗證信,並驗證信箱。不驗證其實也可以繼續操作,只是畫面會一直跳提示訊息,後續還是得要驗證信箱才能使用完整的功能。

Cloudflare 設定流程

新增網站

註冊完成後,直接點選右上角的「新增網站」,並輸入您的網域名稱,再按「新增網站」。

選擇方案,如果願意付費的話,可以選擇付費方案,有較多進階功能可以使用,這邊我是選擇底部的「免費方案」。

Cloudflare 會自動偵測您目前網站的 DNS 相關設定,目前暫時先不用做其它設定,點擊「繼續」即可。

接下來,設定畫面會引導您將目前您所使用的名稱伺服器遷移至 Cloudflare 的名稱伺服器。 這個步驟非常重要,先不要點擊「完成,請檢查名稱伺服器」,另開瀏覽器分頁,先開啟您目前的 DNS 管理畫面,由於我的網址是在 Godaddy 購買,因此本文將以 Godaddy 進行說明,其餘網域註冊商的設定方式也大同小異。

設定 DNS

登入 Godaddy 網站,找到要設定的網域,並點選「DNS」按鈕,進入 DNS 管理畫面。

往下捲動畫面,找到名稱伺服器,並點選「變更」按鈕。

點選「輸入我自己的名稱伺服器 (進階)」。

將剛剛 Cloudflare 提供的兩組名稱伺服器位址,複製貼上至下圖畫面,然後再點擊「儲存」按鈕。

如果您的網域有設定網域保護方案,就會出現下方的身份驗證步驟,如果沒有設定網域保護,就不會出現這些畫面,勾選「是」,並點擊「繼續」按鈕。

點擊「發送密碼」按鈕,並至信箱收信取得密碼。

輸入「密碼」,並點擊「驗證」按鈕。

到這邊,就算設定完成了,接下來可能要等一段時間才會生效,如果您看到以下畫面,這樣大概就已經完成了。可以再檢查一下,下方的名稱伺服器是否已經改成 Cloudflare 的名稱伺服器位址。

最後,回到 Cloudflare 網頁,點選「完成,請檢查名稱伺服器」按鈕即可。

快速入門設定

接下來這個小節,只要根據自己的需求設定即可。

自動改寫 HTTPS,HTTPS 大概是目前網站的基本配備,如果您的網站已經有安裝 SSL 憑證的話,建議就直接開啟此設定。

一律使用 HTTPS,與上方一樣,如果您的網站已經有安裝 SSL 憑證的話,就直接開啟此設定。

自動縮製,這個設定可以刪除 JavaScript、CSS 及 HTML 文件中不必要的字符,例如:縮排空格、換行符號、註解,這樣可以減少檔案大小,進而節省頻寬,建議全部都開啟。

提醒一下,如果您原本是關閉自動縮製,之後才開啟的話,要記得清除快取才會生效。

Brotli,是一個與 gzip 類似的壓縮技術,但壓縮效果比 gzip 還好,由 Google 開發,最適合用於文本壓縮,而圖像檔案及影片檔則不應該進行壓縮,建議開啟此功能。

最後,確認一下剛剛的設定,沒問題的話就點擊「完成」按鈕。

完成設定

至此,所有設定動作都完成了,右上方的「快速動作」是您會很常用的功能,記得每次有修改設定就清除快取一下。

使用 Cloudflare 可能遇到的問題

在 Safari 瀏覽器無法播放影片

網站遷移至 Cloudflare 後,大部分的圖檔、JavaScript、CSS...等資源都能正常運作,唯獨影片檔無法在 Safari 播放,一開始我也覺得很奇怪,後來把 Cloudflare Proxy 關閉,影片又能播放了,因此確定是 Cloudflare 造成的。爬文了一段時間後,發現這似乎與 gzip 壓縮有關。

解決方式
可以在 .htaccess 檔,設定以下內容告訴 Cloudflare 不要對影片檔進行 gzip 壓縮。 改完後,記得至 Cloudflare 後台清除快取。

                
                    <IfModule mod_deflate.c>
                        SetEnvIfNoCase Request_URI .(mp4|ogv|webm)$ no-gzip dont-vary
                    </IfModule>
                
            

網站無法取得使用者的真實 IP

網站遷移至 Cloudflare 後,你的網站只會取得 Cloudflare 的 IP,無法取得瀏覽者的真實 IP。

解決方式
Cloudflare 官方針對大部分主流網頁伺服器都有提供相對應的解決方案,請參考以下連結文章進行設定。

電子郵件收不到信

解決方式
請檢查 DNS 是否有設定 MX 紀錄,並且不要開啟 Proxy。

對關鍵字排名有負面影響

國外有很多討論 Cloudflare 是否會影響關鍵字排名的文章,很多使用者將網站遷移至 Cloudflare 後,都遇到關鍵字排名下降的問題,原本高流量的關鍵字排名忽然下降很多。 這個問題的原因是 Cloudflare 免費方案所使用的是共享 IP,也就是說您的網站有機會與有問題的網站共享同一個 IP,這樣您的關鍵字排名也會因此而受到影響,但這部分完全取決於您被分配到的 IP,因此不是每個人都會遇到這個問題。

解決方式
Cloudflare 允許通過上傳自訂的 SSL 憑證來獲得私有 IP,但免費方案並不提供此功能。

速度真的能提升嗎?

有傳言,如果您的伺服器放在台灣,使用 Cloudflare 反而會讓網站變慢,原因是因為中華電信費用太高,因此 Cloudflare 不會優先使用台灣的 CDN 端點。 經過實測,真的有這個現象,而且流量會直接跑去美國,再跑回台灣,這是一個很奇怪的現象,就算 Cloudflare 不會優先使用台灣的 CDN 端點,也應該使用日本或香港等其它亞洲 CDN 端點才對,不應該跑到這麼遠的美國。

解決方式
Cloudflare 免費版並不會走最短路徑,只要付費就能解決此問題了。

總結

儘管 Cloudflare 提供很多免費又實用的服務,但您並不一定需要它。 我的建議是,如果您的伺服器放在國外,或者您的網站正遭受到 DDOS 攻擊,那麼 Cloudflare 確實是一個不錯的好選擇。 相反的,如果您的伺服器放在台灣本地,或者您的網站本身速度就已經非常快了,那您可能並不需要使用免費版的 Cloudflare 服務,用了反而有機會讓您的網站載入變慢。

經過我自己實測,我的伺服器是放在台灣本地,網址是在 GoDaddy 購買,遷移至 Cloudflare 之後,網站載入速度只增加 5%。 一開始我還以為看錯,怎麼只有 5% 而已,為了這 5%,有必要冒著可能造成關鍵字排名下降的風險嗎?這顯然是不划算的。

本文是假設您並不想花費額外經費購買付費版服務進行論述,如果您願意購買付費版服務,Cloudflare 依然是相當出色的解決方案。