本文为:https://xfeed.app/notes/71448-20 の重制版
未優選#
已優選#
結論:可見,優選過的网站响应速度有很大提升,并且出口 IP 也变多了。这能让你的网站可用性大大提高,并且加载速度显著变快。
優選節點使用:cloudflare.182682.xyz
正式開搞!#
我們需要兩個域名(比如:onani.cn 和 acofork.cn)
這裡我們讓 onani.cn 成為主力域名,讓 acofork.cn 成為輔助域名
- 首先新建一個 DNS 解析,指向你的源站,開啟 cf 代理
- 前往 SSL/TLS -> 自定義主機名。設置回退源為你剛才的 DNS 解析的域名(xlog.acofork.cn),添加自定義主機名為你最終想讓用戶訪問的域名(onani.cn)並且按照指示在主力域名(onani.cn)添加 TXT 所有權驗證和 TXT 證書驗證,直到證書狀態和主機名狀態都變為有效
- 繼續在你的輔助域名添加一條解析。CNAME 到優選節點:cloudflare.182682.xyz,不開啟 cf 代理
- 最後在你的主力域名添加解析。域名為之前在輔助域名的自定義主機名(onani.cn),目標為剛才的 cdn.acofork.cn,不開啟 cf 代理
- 優選完畢,嘗試訪問
優選工作流:用戶訪問 -> 由於最終訪問的域名設置了 CNAME 解析,所以實際上訪問了 cdn.acofork.cn,並且攜帶 源主機名:onani.cn -> 到達 cloudflare.182682.xyz 進行優選 -> 優選結束,cf 邊緣節點識別到了攜帶的 源主機名:onani.cn 查詢發現了回退源 -> 回退到回退源內容(xlog.acofork.cn) -> 訪問成功
疑難解答#
- Q:如果我的源站使用 Cloudflare Tunnels
A:需要在 Tunnels 添加兩個規則,一個指向你的輔助域名,一個指向最終訪問的域名。然後刪除最終訪問域名的 DNS 解析(但是不要直接在 Tunnels 刪,會掉白名單,導致用戶訪問 404)。然後跳過第一步
原理:假設你已經配置完畢,但是 Cloudflare Tunnels 只設置了一個規則。
分類討論,假如你設置的規則僅指向輔助域名,那麼在優選的工作流中:用戶訪問 -> 由於最終訪問的域名設置了 CNAME 解析,所以實際上訪問了 cdn.acofork.cn,並且攜帶 源主機名:onani.cn -> 到達 cloudflare.182682.xyz 進行優選 -> 優選結束,cf 邊緣節點識別到了攜帶的 源主機名:onani.cn 查詢發現了回退源 -> 回退源檢測 源主機名:onani.cn不在白名單 -> 報錯 404 Not Found。訪問失敗
分類討論,假如你設置的規則僅指向最終訪問的域名,那麼在優選的工作流中:用戶訪問 -> 由於最終訪問的域名設置了 CNAME 解析,所以實際上訪問了 cdn.acofork.cn -> 由於 cdn.acofork.cn 不在 Tunnels 白名單,則訪問失敗
- Q:如果我的源站使用了 Cloudflare Origin Rule(端口回源)
A:需要將規則的生效主機名改為最終訪問的域名,否則不觸發回源策略(會導致輔助域名無法訪問,建議使用 Cloudflare Tunnels)
原理:假設你已經配置完畢,但是 Cloudflare Origin Rule(端口回源)規則的生效主機名為輔助域名
那麼在優選的工作流中:用戶訪問 -> 由於最終訪問的域名設置了 CNAME 解析,所以實際上訪問了 cdn.acofork.cn,並且攜帶 源主機名:onani.cn -> 到達 cloudflare.182682.xyz 進行優選 -> 優選結束,cf 邊緣節點識別到了攜帶的 源主機名:onani.cn 查詢發現了回退源 -> 回退到回退源內容(xlog.acofork.cn)-> 但是由於源主機名:onani.cn不在 Cloudflare Origin Rule(端口回源)的規則中 -> 無法觸發回源策略,訪問失敗
- Q:如果我的源站使用 serv00
A:需要在 WWW Web Site 界面添加兩個規則,一個指向你的輔助域名,一個指向最終訪問的域名。
原理:假設你已經配置完畢,但是 serv00 僅配置其中一個域名
那麼在優選的工作流中:會導致訪問錯誤,serv00 將會攔截不在白名單的域名請求