Cloudflare 不是萬靈丹

雖然之前寫過一些有關於網站速度(評分)的文章:
探討 JS 對於 web.dev 分數的影響
Google PageSpeed 分數害死人

不過其實還是很多人會去糾結甚至是覺得使用 Cloudflare 可以加速網站,我的 GTmetrix、Pingdom Website Speed Test、PageSpeed Insights、Web.dev 等,分數到底怎樣怎樣的。

使用 Cloudflare 加速網站這件事,你可能搞錯了什麼。

要明白 Cloudflare 有沒有加速你的網站,你必須先認識到你的主機是不是比 Cloudflare 節點還要近,如果你使用 Cloudflare 免費版,你使用到的節點有八成的可能性會跑去美國,如果你的網站主機在日本,你可能還讓你的網站『減速』了,不過會有些許例外,例如主機輸出的頻寬比 Cloudflare 小可能就會快一點,但使用 Cloudflare 不是加速的保證

再者,如果 Cloudflare 沒有確實 Cache 你的網站,變成每一次瀏覽網站,Cloudflare 還要去你的原始伺服器(假設日本),拉出網站內容,傳送到美國你存取的節點,你才能獲得網頁內容。

沒有命中快取:
你瀏覽網站(台灣)<—> Cloudflare 節點(美國) <—> 原始伺服器(日本)
命中快取:
你瀏覽網站(台灣)<—> Cloudflare 節點(美國)
沒有 Cloudflare:
你瀏覽網站(台灣) <—> 原始伺服器(日本)

如果沒有命中快取,這樣看來你甚至還繞路了不少。

怎麼判斷 Cloudflare 有確實快取你的網站?使用開發者工具,以及 Cloudflare 提供的工具查看你所使用的節點。

要先確定網頁在瀏覽時,有沒有 cf-cache-status 的標頭,如果沒有代表 Cloudflare 實際上根本不會快取你的網站,對於使用 Cloudflare 的網站網址加上 /cdn-cgi/trace 可以看到現在使用的節點。

如果跑測速網站你可能會反駁,我的分數提高了,你必須明白,Cloudflare 還是會很努力的想辦法將你網站上的靜態資源快取起來,例如 CSS、JS 那些,而且透過設定可能還會壓縮過,讓體積更小。

你的跑分網站,可能是使用國外的主機來測試,而不是跟你一樣在台灣。

跑分網站測試 <—> Cloudflare 當地節點 <—> 原始伺服器(日本)

Cloudflare 快取了部分的資源,且跑分網站在瀏覽時命中了快取,所以分數提高了,聽起來很理想,那也只是因為跑分網站的伺服器可能在美國,而美國也有 Cloudflare 節點。
跑分網站測試(美國)<—> Cloudflare 節點(美國)<—> 原始伺服器(日本)
CSS 與 JS 的載入對跑分網站來說變快了,所以分數提高了。

但你依然沒有解決,你在台灣瀏覽時跑去美國的問題。
你瀏覽網站(台灣) <—> Cloudflare 節點(美國) <—> 原始伺服器(日本)

本篇主要想說的是:
不是網站慢使用 Cloudflare 就可以好棒棒,實際上可能更慢,清楚自己的需求也理解 Cloudflare 可以幫助你什麼才有用。
如果真的要使用 Cloudflare 加速,Enterprise 方案保證有台灣節點,還能使用 Cache Everything,再搭配 Page Rule『Bypass Cache on Cookie』,就會感受到真正的加速了。

寫在後頭,後來 Cloudflare 在前陣子推出新的產品,可以改善 WordPress 網站在這個情況下所遇到根本沒有快取網站的問題,不過也是要錢的,而你…花了嗎?沒有的話我的勸告還是只有一個,拔了 Cloudflare 比較實在。

在〈Cloudflare 不是萬靈丹〉中有 4 則留言

  1. 謝謝版主介紹,覺得寫得很完整呢~
    CF 如需要使用到台灣節點是需要購買Ent Plan. 不只有節點優先權使用,也有SLA 的保證,在資安的防護上也比其他方案有更高的防禦權。

    CF 台灣業務窗口留言~感謝支持!

    1. 我們公司就有使用 Cloudflare,如同文章內圖片的網址,懂的使用 Cloudflare 比較重要 XD。

發佈回覆給「sally」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *