Cloudflare 双域名实现国内分流加速

〇、效果

一、要求

dnspod 或其它等具有国内外分流功能的 DNS 解析站，本文使用 dnspod

cloudflare 账号

两个域名。主域名为用户访问的域名，本文为 www.vikifish.com，辅域名为用于回退源的域名，本文使用 origin.xxx.com 代指

二、原理

加速原理其实很简单，就是通过 dnspod 配置 CNAME 将用户访问导入到指定的 cloudflare cdn 服务器上，再通过 cloudflare 设置 cdn 的回退源让 cloudflare cdn 的从真实的服务器上更新缓存。图示：

三、操作

大概流程分为三个部分：

使用 dnspod 对用户访问的域名 www.vikifish.com 进行 CDN 导流

使用 cloudflare 代理真实服务器 origin.xxx.com

使用 cloudflare 设置用户通过 cdn 访问 www.vikifish.com 时的回退源 origin.xxx.com

dnspod 分流配置

dnspod 配置的是你想要给用户访问的域名，此处为 www.vikifish.com（我使用二级域名是因为这个域名是 cloudflare 申请的，自定义 DNS 服务器要收费 😭）。

将 www.vikifish.com 交由 dnspod 管理

腾讯云控制台 --> 云解析 DNS --> 我的解析 --> 添加域名，将 www.vikifish.com 添加进来。按操作提示在 DNS 服务商（我是 cf）配置 TXT 记录。

由于添加的是二级域名，还需要在 DNS 服务商处配置 NS 记录

成功后云解析这边的域名状态会显示正常

使用 dnspod 对 www.vikifish.com 进行导流

配置如下：

cloudflare 代理真实服务器

将 xxx.com 交由 cloudflare 托管

配置 DNS 记录，将 origin.xxx.com 指向网站服务器 IP

设置回源策略

在 cloudflare 上管理 xxx.com

打开 SSL/TLS --> 自定义主机名，添加回退源，将 origin.xxx.com 添加到回退源。成功添加后回退源状态显示为 “有效”

添加自定义主机名，将 www.vikifish.com 添加进去，使用默认配置即可

此时自定义主机名状态为异常，点击后按提示在 dnspod 中添加 TXT 记录等待片刻即可

四、遇到的问题

证书问题
因为实际上 cf 是从 origin.xxx.com 获取数据，所以服务器需要配置为 origin.xxx.com 的证书，并将 SSL 规则设置为 “完全（严格）”

Error 1034
这是因为 Cloudflare 的边缘验证检查措施不允许用户指向 1.1.1.1 类似的域。按照 dnspod 分流设置的配置，将境外流量直接导到源服务器 origin.xxx.com 即可

想使用一级域名访问
如果你可以自定义域名的 DNS 服务器的话，将教程中的 www.vikifish.com 改成 vikifish.com 也可以，只有少数的 DNS 托管配置与教程不一致，但是配置时都会有提示。
如果你和我一样，一级域名托管在 cf 上的话，可以直接在 cf 中设置规则，直接使用 Redirect from Root to WWW 模版即可（但是访问一级域名速度没有二级域名快，因为多了 cf 作的重定向）

Done！

此文由 Mix Space 同步更新至 xLog
原始链接为 https://www.vikifish.com/posts/env/cf-optimize-access-speed-001