Cloudflare IP优选，让你的网站全绿！

本文为：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 将会拦截不在白名单的域名请求