Cloudflare 是一間網站效能與資安公司,Cloudflare 讓您很容易的將您的網站變得更快更安全,就如同開啟網路上的知名入口網站一般快速。
Cloudflare 的核心之一是 CDN 技術,什麼是 CDN 呢?
CDN:Content Delivery Network,或稱內容傳遞網路
用白話一點來說,就是先幫你把可以快取的靜態內容抓到 CDN 服務的伺服器,藉由獨特的運算法找出離使用者最近的伺服器,再將內容遞送給使用者。
有興趣的人可以了解 Wiki 中對於 CDN 的優點分析
一般網站使用 CDN 會有甚麼好處呢?
- 節省流量:這是最顯而易見的好處。我們曾試過幫一個高流量網站掛上 Cloudflare ,流量降了 85% 以上 ( 該站是純貼圖的網站,只有圖片而且圖片都不大,一般網站無法節省到這麼多流量,但還是可以讓你感受到很大的差別,官方數據平均能節省 60% 的流量 )
- 加速訪客瀏覽速度:Cloudflare 目前有 23 個機房,分布在全球各處,亞洲主要有新加坡、日本與香港三個點。
- 增加網站安全性:使用 CDN 後,網址的 IP 會指到離訪客最近的 CND 快取主機 (這也是為什麼使用 CDN 服務會有加速的功能),所以等於您的網站是在 CDN 主機後方,加上 CDN 服務也附加了 WAF (Web Application Firewall) 防火牆,所以整體而言能增加網站的安全性。
- 網頁內容最佳化 (Web content optimization):這部分可分為兩點說明,降低連線數與加快傳遞速度。傳統的 CDN 只是把內容從最近的點 push 給訪客,Cloudflare CDN 還可以針對訪客的特性將遞送內容做最佳化。例如將多個 Javascripts 結合成一個以降低連線數,或是偵測訪客使用的裝置 (行動裝置、PC),若是螢幕較小的行動裝置便自動將圖片等資源以較小的大小送出。降低連線數有甚麼好處呢?答案是會加快載入的速度,因為每一次的連線都會浪費一些時間在 TCP 交握上。
- 免費的 DNS 代管服務:若不用 Cloudflare 的 CDN 服務,直接拿來當免費 DNS 代管其實也很好用。CloudFlare 的介面簡潔討喜,申請程序又非常的直覺快速,基本上只當作 DNS 代管服務也非常的適合。加上 DNS 系統是 CDN 服務的基礎設施,因此推斷 Cloudflare 的 DNS 應該是很穩定不容易掛的 ( DNS 掛了 CDN 服務也等於全掛了 )。
註:目前 CloudFlare 已有提供中文介面,位於網頁最右下角有選單可選擇,不過翻譯的內容是呼是由 Google 翻譯出來的。
CloudFlare 申請流程如下,註冊好帳號後,加入網域 (Add website):
輸入網域按下 Add website,Cloudflare 即會開始做一個 60 秒的 DNS record 掃描,掃描完成後,按下 continue setup 繼續 …
掃描結果:
上圖可以看到 Cloudflare 自動判別 ggg.com.tw 與 www.ggg.com.tw 使用 CDN 服務,非常的聰明。在這裡我們檢視一下是否有需要修改的地方,Cloudflare 會先截取目前在使用的 DNS Zone 資料,包含 MX 等紀錄,所以我們幾乎不用做太多設定。我們也可以針對每個 DNS 紀錄 (record) 決定是否要經過 Cloudflare 的 CDN (直接點一下雲的圖示即可),例如以 ggg.com.tw 來說,我們可設定 ggg.com.tw 要使用 CDN 服務而 www.ggg.com.tw 直接 bypass。
沒問題後就按下
I’ve added all missing records, continue
選擇初始設定:
我們先使用免費方案測試看看,免費對於一般網站使用已經足夠,免費與付費方案的差異主要在分析報表更新速度、自訂 Page rules、更高的安全性進階設定、進階 DDoS 防範功能以及 SSL 的支援等等 (參考網頁說明)。效能 (Performance) 與安全性 (Security) 也先照預設選擇。
申請 Cloudflare 到這一步,我們需要把網域的 DNS 指向 Cloudflare 的 DNS 主機,看您網域是在那邊申請的,到網域註冊商那邊更改。有趣的是 Cloudflare 的 DNS 主機似乎都是用人名來命名,例如這裡是 Josh 與 Lisa。
要注意的是若網域無法指向 Cloudflare 的 DNS,則該服務是不會開通的。
更改完 DNS,最後按下 Continue 後,Cloudflare 就開始運作了:
我們可點選最右方的齒輪按鈕,這裡可以變更細部設定。
我們來看一下 Page rules 這個功能:
Page rules 允許使用者針對特定網頁作細部的設定,例如是否要做轉址 (Forwarding)、快取過期的時間 (Cache expire TTL)、安全性掃描 (Security) 是否開啟等等。Page rules 支援使用 * 號,例如:example.com/* 會符合下列情況:example.com/blog、example.com/directory,但是不符合:example.com、blog.example.com。*.example.com 會符合 blog.example.com、www.example.com 但是不符合 example.com。免費版的只支援 3 個規則。
再來看看 Threat Control (威脅控制功能):
Cloudflare 會自動阻擋一些來自中毒的殭屍電腦、Web spammer (垃圾訊息發送者) 的連線,這些有問題的 IP 在連線時,Cloudflare 會自動跳出 CAPTCHA 驗證碼給訪客輸入,輸入正確才允許連線。
結論:
Cloudflare 真的是一個很令人驚艷且成功的雲端與資安服務,他把 CDN 服務推向了另一個世代,可惜台灣目前並沒有當地機房服務台灣的訪客,但是假設您的網站每月都要付出超額的流量費用,Cloudflare 真的會幫您省很多開銷 (我懷疑巨額的流量費用是否能繼續支撐免費的方案)。Cloudflare 近期才獲得一輪 2000 萬美元的投資,期望 Cloudflare 在日後能再次驚豔大家的眼界 (Surprise me)!
註:目前的網站大多使用非常多的 Ajax 技術,Ajax 技術的底層 Javascripts 在做快取時,有時會影響正常的 Ajax 運作,這時可以在 Cloudflare 管理介面 Cloudflare settings / 將 Rocket Loader (Web optimization) 設為關閉 (Off) 再試試看,或是將有問題的頁面用 Page rules 排除掉看看。
* Cloudflare 針對 WordPress 有出一款 pluging,主要是修正對應的訪客 IP 地址。有使用 WordPress 的使用者可以參考看看:http://wordpress.org/extend/plugins/cloudflare/
* 遠振自 2012/12/14 已正式成為 Cloudflare Certified Partner,遠振資訊的虛擬主機用戶只需於虛擬主機控制台內點選 Cloudflare 圖示,就可在 30 秒內開啟 Cloudflare 服務,連 DNS 都不需變更喔!