之前寫了一篇關於cloudflare的文章, 收到了一些朋網友的信件詢問, 很多人都誤以為Cloudflare是網站的萬靈丹, 不但可以加速網站的loading速度, 更可以大幅節省流量. 這些觀點其實都沒有太大的錯誤, 但是卻很容易忽略到隱藏在背後的危機.
手頭上有在幫忙維護某一個擁有大量靜態圖片的網站, 這個特性是非常符合cloudflare的使用情境, 所以在我接手後變幫忙把她弄上去cloudflare, 結果相當的顯著, 網站loading速度變快了許多, 使用者使用意願也大幅增加, 於是帶來了更多的使用者.
聽起來一切都非常美好, 但是卻在server端觀察到, 隨著使用者的成長, 整體的system loading也跟著增加, 才猛然想起cloudflare是不會cache動態產生的檔案(其實html他也不會cache, 所以用rewrite rule去欺騙是沒有用的), 所以當你的網站吸引越來越多的使用者, 需要動態產生的內容也隨之增加, 因此造成server的loading過重. 於是進去後端做了些參數的調整, 就搞定了問題.
此外, 另外一個迷思是, 只要套上cloudflare後, 網站的response time就會進步了, 事實上, "機器的實體位置"還是很重要的, 如同之前提到的, 只要是動態產生的內容, cloudflare就會去跟你的機器索取一次內容, 所以你的機器離cloudflare遍佈在全世界機器的距離還是對response time會有所影響. 簡單地挑選步驟為:
- 觀察你的使用者多數位在那個國家
- 使用traceroute.org觀察這些國家的使用者會被導到cloudflare在全球的那個機房
- 選擇離這些機房近的hosting provider
以台灣使用者為例, 大多數都被導到cloudflare為在香港或是美西的機房, 所以會建議選擇在美國西岸的provider, 以達到最好的效果.
最後, 這個故事教會了我們什麼? 1) 如果你後端的code寫得很爛, 使用cloudflare只會加速你網站的死亡速度. 2) 透過cloudflare可以快速地(這邊比較的基準是在國外的vps, 如果你是使用國內hosting的有錢大爺, 不在此列 XD)將網站的靜態內容傳遞給使用者, 沒有意外的話PV會隨之增加, 請在server端做好準備. 3) 請慎選機器的實體位置.

小博也用了Cloudflare加速,向您请教如何选择设置用哪个机房?我注册的时候没发现可以设置的
你沒有辦法選擇機房, cloudflare的dns會自動根據user所在的位置幫user挑選. 中國大陸的使用者應該會被導到美國西岸.
這個不是之前被DDOS的很兇
這邊有不少介紹
http://www.cloudflare.com.tw