只有一个域名能使用 Cloudflare 优选 IP/域名加速网站吗？
前言网上搜了不少使用 Cloudflare 优选 IP/域名 加速网站的教程，一般都是教你的怎么配置，看的也是云里雾里，索性去翻了下 Cloudflare for SaaS 的文档，官方有张图，看了按照我的理解大概描述下，看看能不能帮到新手，如果有错误希望大家指出下，最后讨论下一个域名来做优选可行吗？原理1. 最最原始的 DNS 记录假设我有个服务器，IP 地址是 1.1.1.1，我在服务器上部署了一个 vaultwarden 的服务，通过一通操作，我现在可以通过 1.1.1.1:8080 访问 vaultwarden 服务了。现在我不想通过 ip 和 端口来访问，所以我去买了个域名 test.dev，并且在服务区上安装了 nginx 作为反代，vaultwarden.test.dev 访问 8080 的服务，最重要的是：我要去 DNS 服务商配置我的 test.dev 域名的 DNS A 记录：vaultwarden.test.dev → 1.1.1.1现在我可以通过 vaultwarden.test.dev 来访问我的 vaultwarden 服务了，通过 ping vaultwarden.test.dev 可以看到 IP 是 1.1.1.12. 使用 Cloudflare 代理在网上冲浪了一段时间后， 听说网上一个大善人叫 Cloudflare，这个大善人可以给我的网站提供免费的 https 证书，可以隐藏我的真实 IP 1.1.1.1，防止有人 对我的服务器做一些不好的事，还可以在我的网站被攻击时提供防护，所以我把我的 test.dev 域名的 namespace server 改到了 cloudflare，并且设置了 DNS 记录：vaultwarden.test.dev → 1.1.1.1，最重要的是开启了黄色的小云朵：已代理现在我还是可以通过 vaultwarden.test.dev 来访问我的 vaultwarden 服务，通过 ping vaultwarden.test.dev 可以看到 IP 已经变为 172.67.158.38，实际上访问的逻辑已经变成了：vaultwarden.test.dev → Cloudflare → 1.1.1.1访问我的域名时访问的是 Cloudflare 的网络，由 Cloudflare 去跟我的服务器打交道。只是感觉加了代理之后访问速度变慢了亿点点，算了，好歹可以用吧，毕竟有免费的 https 证书。3. 使用 Cloudflare for SaaS突然有一天，我的 vaultwarden.test.dev 无法访问了，ping 一下，ping 不通，172.67.158.38 这个 IP 也 ping 不通，咋回事？网上搜了下，可能是最近网络波动，或者因为 xxx 原因，导致 IP 被墙了，咋办，这个 IP 是 Cloudflare 分配给我的，我可不可以去 cloudflare 看看能不能更换？不好意思，好像是不能的，那咋办？听说 visa.cn 也是用的 cloudflare，一直可以访问，而且他的访问速度比我的快多了，那能不能借用分配给 visa.cn 的 IP 去访问到 cloudflare，然后再让 cloudflare 去访问我的服务器？那就要解决两个问题：我访问 vaultwarden.test.dev 的时候要借用分配给 visa.cn 的 IP 去跟 cloudflare 连接与 cloudflare 连接后 cloudflare 知道我是谁，知道我的服务器是哪个，知道把我的请求转发到我的服务器上第一个问题，可以通过配置 DNS CNAME记录来解决：vaultwarden.test.dev → visa.cn现在访问 vaultwarden.test.dev 可以看到 error 1016 的错误。第二个问题，就需要通过 cloudflare for saas 来解决了。有两个点需要明确：请求过来了，要把请求转发到哪个服务器去?cloudflare 怎么知道 www.custom1.com / shop.domain.com / store.shop.com / shop2.ecommerce.com 这四个域名是我的，需要我来处理这几个域名的请求，毕竟 cloudflare 网络上有 N 多个域名解析？这两个点对应到 cloudflare，就是需要配置：添加回退源 - 告诉 cloudflare 你真实服务器地址，请求来了发到你的服务器自定义主机名 - 告诉 cloudflare 这几个域名需要帮你转发一下4. 等等，为什么要两个域名从上面的逻辑来说，理论上一个域名也可以啊，比如我设置了我的回退源：cdn.test.dev → 1.1.1.1添加自定义主机 vaultwarden.test.dev，vaultwarden.test.dev 的 DNS CNAME 到 visa.cn这样当我访问 vaultwarden.test.dev 时，借用 visa.cn 的 cloudflare IP 访问 cloudflare 网络，然后就会走回退源访问 1.1.1.1。吗？等等，真会走到回退源吗？cloudflare 查看 test.dev DNS 记录，明明有个 CNAME 记录是到 visa.cn 的，那就去 visa.cn 吧，所以，理论上就会一直是 error 1016 错误。这就是为啥要两个域名，通常来说用第二个域名 fallback.dev 来做回退源：当我访问 vaultwarden.test.dev 时，借用 visa.cn 的 cloudflare IP 访问 cloudflare 网络，这个时候会命中 fallback.dev 中添加的自定义主机，然后走回退源访问到 1.1.1.15. Cloudflare for SaaS 的配置明白上面的逻辑之后，配置就很简单了，四步：搞一个免费的域名 fallback.dev 做回退用，添加到 cloudfare，用 cloudflare 管理添加一个 A 记录 cnd.fallback.dev 指向到 你的服务区 IP 1.1.1.1，把这个记录添加到回退源添加一个自定义主机名 vaultwarden.test.dev设置 vaultwarden.test.dev DNS CNAME 到 visa.cn (优选域名）（或者 A 记录，优选 IP）6. 一个域名真的没办法做优选吗？我在使用 DNSPod 做测试的时候，发现实际上是可以实现的。域名 test.dev 托管在 cloudflare 上，子域名 vaultwarden.test.dev 添加到 DNSPOD，在 cloudflare 上添加子域的 NS 记录到 DNSPOD。其他的操作与两个域名一致，只是回退源也是使用 test.dev，最后再 DNS 添加一个记录：vaultwarden.test.dev CNAME cdn.test.dev