前言
懶懶部落使用Cloudflare Pages搭建而成,採用的是Cloudflare Workers在Cloudflare網路上執行代碼產生應用程式,而不需要運行專用服務器(Serverless),所以省去了自己維護伺服器的成本與時間。
不過如果今天你是使用自身的VPS或Dedicated Server來搭建WordPress或其他網站,又想要使用Cloudflare CDN所提供的快取服務,在Cloudflare免費方案裡面你可能會取得位置在NRT(日本成田)或LAX(美國洛杉磯)的快取伺服器,由於CDN節點位於國外,可能會產生不用CDN網頁的反應時間(TTFB) 反而更快的情況。
但若想使用Enterprise方案才有的TPE(台北)或KHH(高雄)快取伺服器節點,付出的$$又太高(官網上價格是居然是自訂!),那有沒有可以免費使用TPE或KHH節點的方式呢?後面也會提到為何本文標題內含"抉擇"二字。
至於Cloudflare在台灣沒有提供免費的伺服器節點(也就是與中華電信HINET之間的問題)請參見:
Bandwidth Costs Around the World (2016/08/18)
https://blog.cloudflare.com/bandwidth-costs-around-the-world/
Cloudflare Pages 設定
首先必須聲明此方法僅適用於Cloudflare Pages建立的網站,經實測藉由該種方式建立的開頭*.pages.dev
網站,都是經由TPE節點發送的資料(也有可能是KHH節點,視使用者的ISP而定)
但若啟用Cloudflare Pages的自訂網域功能,我們打開DNS頁面會發現Proxy功能預設是開啟的,此時會發現會是經由NRT節點發送的資料(也有可能是LAX節點,視使用者的ISP而定)
我們打開Google Chrome的開發者工具,比較源lanlanblog.pages.dev
與CNAME過後的lanwp.org
,可以發現lanlanblog.pages.dev
經過TPE節點lanwp.org
經過NRT節點,但他們的反應時間卻相差接近兩倍的時間!
經過Proxy與不經過Proxy的TTFB比較
懶懶發現此時若將CNAME的Proxy功能關閉,CNAME過後的lanwp.org
則會重回TPE節點來發送的資料,反應時間自然也降低
關閉Proxy帶來的隱憂
不過就如標題所述的"抉擇"二字,關閉自訂網域的Proxy功能,也就意味Cloudflare所提供的WAF,Analytics, Page Rules等功能將不能使用(但Cloudflare Pages自帶DDoS防護與Cache),所以該如何選擇就端看你自己囉!
其他網友的討論
should-i-proxy-cloudflare-pages-custom-domain - stackoverflow
https://stackoverflow.com/questions/73560680/should-i-proxy-cloudflare-pages-custom-domain