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 加速,200 美金的方案有台灣節點,還能使用 Cache Everything,再搭配 Page Rule『Bypass Cache on Cookie』,就會感受到真正的加速了。

作者: cras4202tw

我是 cras4202tw,有多年使用 WordPress 與伺服器維運經驗,目前在鴻海科技集團富盈數據擔任工程師,負責的網站總流量每個月超過千萬次瀏覽。更多關於我...點我

臉書留言

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *