基于DNS区域解析分流国内外CDN
# 背景
有一个项目的官网用户面向全球,需要同时保证国内外用户都能流畅访问,本文将探讨如何较低成本实现这个需求。
# 最佳实践
- 纯国内 CDN:以腾讯云 CDN 为例,海外访问需要额外收费的
- 纯国外 CDN:以 CloudFlare 为例,白嫖版除了中国大陆访问慢,其他都挺好
最好的结果是:中国大陆用户解析到国内 CDN,海外用户解析到国外 CDN。
即:中国大陆用户打开
www.example.com
解析到腾讯云 CDN,海外用户打开www.example.com
解析到 CloudFlare
需要用到两个二级域名
aaa.com
bbb.com
# 新增子域名
一番研究发现,DNSPod 可以免费实现区域解析,但域名在 CloudFlare,不想因为这一个三级域名,将整个二级域名搬去 DNSPod。
- 在 DNSPod 添加域名
www.abc.com
- 在 CloudFlare 添加记录
www ns {dnspod提示填入DNS服务器1}
www ns {dnspod提示填入DNS服务器2}
# 配置国内 CDN
跟一般配置相同,略
# DNSPod 记录
主机记录 | 记录类型 | 线路类型 | 记录值 |
---|---|---|---|
@ | CNAME | 默认 | {随便写}.bbb.com |
@ | CNAME | 境内 | {国内CDN的cname值} |
笔记
至此实现国内用户访问 www.aaa.com
即可正常访问网站,但海外用户还不行。
# CloudFlare 记录
- CloudFlare 打开
bbb.com
页面
# DNS
- 添加记录
{随便写} a {国内源站ip} 勾选代理
# SSL/TLS - 自定义主机名
首次打开需按提示开通
- 回退源输入
{随便写}.bbb.com
,点击添加回退源
添加自定义主机
,输入www.aaa.com
- 按提示在 dnspod 中配置 2 个 txt 记录
- 值得一提的是记录值需要去掉域名,如
_cf-custom-hostname.www.aaa.com
->_cf-custom-hostname
- 值得一提的是记录值需要去掉域名,如
- 等待验证完成
- 可通过如 itdog (opens new window) 等有
网站测速
功能的网站,输入www.aaa.com
看看海内外解析情况- 正常海外应为
状态:200 IP位置:Anycast/cloudflare.com
- 正常海外应为
上次更新: 2024/08/25, 02:09:30