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!