前言


懶懶部落使用Cloudflare Pages搭建而成,採用的是Cloudflare Workers在Cloudflare網路上執行代碼產生應用程式,而不需要運行專用服務器(Serverless),所以省去了自己維護伺服器的成本與時間。

不過如果今天你是使用自身的VPS或Dedicated Server來搭建WordPress或其他網站,又想要使用Cloudflare CDN所提供的快取服務,在Cloudflare免費方案裡面你可能會取得位置在NRT(日本成田)或LAX(美國洛杉磯)的快取伺服器,由於CDN節點位於國外,可能會產生不用CDN網頁的反應時間(TTFB) 反而更快的情況。

但若想使用Enterprise方案才有的TPE(台北)或KHH(高雄)快取伺服器節點,付出的$$又太高(官網上價格是居然是自訂!),那有沒有可以免費使用TPE或KHH節點的方式呢?後面也會提到為何本文標題內含"抉擇"二字。

Enterprise Plan
Cloudflare Blog

至於Cloudflare在台灣沒有提供免費的伺服器節點(也就是與中華電信HINET之間的問題)請參見:

Bandwidth Costs Around the World (2016/08/18)

https://blog.cloudflare.com/bandwidth-costs-around-the-world/

Six Expensive Networks

Cloudflare Pages 設定


首先必須聲明此方法僅適用於Cloudflare Pages建立的網站,經實測藉由該種方式建立的開頭*.pages.dev網站,都是經由TPE節點發送的資料(也有可能是KHH節點,視使用者的ISP而定)

Cloudflare Pages頁面
.pages.dev TPE節點

但若啟用Cloudflare Pages的自訂網域功能,我們打開DNS頁面會發現Proxy功能預設是開啟的,此時會發現會是經由NRT節點發送的資料(也有可能是LAX節點,視使用者的ISP而定)

自訂網域
DNS頁面
lanwp.org NRT節點

我們打開Google Chrome的開發者工具,比較源lanlanblog.pages.dev與CNAME過後的lanwp.org,可以發現lanlanblog.pages.dev經過TPE節點lanwp.org經過NRT節點,但他們的反應時間卻相差接近兩倍的時間!

lanlanblog.pages.dev反應時間
lanwp.org反應時間

經過Proxy與不經過Proxy的TTFB比較


懶懶發現此時若將CNAME的Proxy功能關閉,CNAME過後的lanwp.org則會重回TPE節點來發送的資料,反應時間自然也降低

DNS頁面關閉Proxy
lanwp.org TPE節點
lanwp.org反應時間 - TPE節點

關閉Proxy帶來的隱憂


不過就如標題所述的"抉擇"二字,關閉自訂網域的Proxy功能,也就意味Cloudflare所提供的WAF,Analytics, Page Rules等功能將不能使用(但Cloudflare Pages自帶DDoS防護與Cache),所以該如何選擇就端看你自己囉!

https://lanwp.org/cdn-cgi/trace 節點

其他網友的討論


should-i-proxy-cloudflare-pages-custom-domain - stackoverflow
https://stackoverflow.com/questions/73560680/should-i-proxy-cloudflare-pages-custom-domain