实现网站国内外智能分流:Cloudflare + 国内 CDN 联合加速方案
📅 2026年05月19日 · 技术
概述
对于面向全球用户的网站来说,一个普遍存在的痛点是:国内用户访问慢,国外用户也不快。使用 Cloudflare 可以良好地加速海外访问,但对国内用户效果有限;使用国内 CDN 可以加速国内访问,但海外节点覆盖不足。有没有一种方案能两者兼顾?
答案是可以的——通过 Cloudflare 自定义主机名(SaaS) + 国内 DNS 智能分流 + 国内 CDN 回源 的组合策略,实现国内用户走国内 CDN 节点,海外用户走 Cloudflare 全球网络,互不干扰。本文将详细拆解这一方案的完整配置过程。
一、方案原理
在深入操作之前,理解原理有助于排查问题和灵活调整。整体架构如下图所示:
用户请求 → DNS解析
├── 国内用户 → 国内 CDN 节点 → 回源到服务器(辅助域名)
└── 海外用户 → Cloudflare 节点 → 回源到服务器(辅助域名)
关键组件:
- 主域名(如 example.com): 用户在浏览器中输入的域名,DNS 按线路解析到不同目标
- 辅助域名(如 source.example.com): 实际绑定在服务器上的域名,作为"源站"供 CDN 和 Cloudflare 回源
- 国内 CDN: 接收国内用户请求,回源到辅助域名获取内容
- Cloudflare 自定义主机名: 通过 Cloudflare SaaS 功能为主域名提供海外加速和 SSL 证书
二、准备工作
在开始配置之前,请确保你已准备好以下资源:
- 一台服务器: 已部署 Web 环境(本教程以宝塔面板为例,但原理通用,LNMP 或手动配置均可)
- 两个域名:
- 主域名(如
www.example.com):用于最终用户访问,DNS 需支持智能解析(推荐阿里云 DNS、腾讯云 DNS、华为云 DNS 等国内 DNS 服务商) - 辅助域名(如
source.example.com):作为回源地址,需要绑定在 Cloudflare
- 主域名(如
- Cloudflare 账号: 用于配置自定义主机名(SaaS)功能
- 国内 CDN 账号: 推荐京东云、阿里云 CDN、腾讯云 CDN 等服务商
三、服务器端:搭建网站并配置 SSL
3.1 新建网站
在宝塔面板(或其他 Web 管理面板)中新建一个网站,绑定的是 辅助域名(如 source.example.com)。这个站点将作为真正的源站,承载你的网站代码和内容。
3.2 申请 SSL 证书
使用宝塔自带的 Let's Encrypt 功能,为辅助域名申请 SSL 证书。完成后确保可以通过 https://source.example.com 直接访问网站内容。
https://source.example.com,确认 HTTPS 正常、证书有效、网站内容正确展示。这是后续所有配置的基础。
四、Cloudflare 端:配置自定义主机名与回源
Cloudflare 自定义主机名(Custom Hostname,也称 SaaS 功能)允许你为不是托管在 Cloudflare 的域名提供 Cloudflare 的 CDN 和 SSL 服务。你需要先将 辅助域名 的 DNS 托管到 Cloudflare。
4.1 将辅助域名添加到 Cloudflare
登录 Cloudflare 后台,添加你的辅助域名(source.example.com 所在的一级域名),并将 DNS 服务器修改为 Cloudflare 分配的 NS 地址。
4.2 新增回退源(Fallback Origin)
进入 Cloudflare 的 SSL/TLS → 自定义主机名 页面:
- 在"回退源"(Fallback Origin)区域,填写你的辅助域名:
source.example.com - Cloudflare 会自动验证回退源的有效性
4.3 新增自定义主机名
在同一个页面,点击"添加自定义主机名":
- 自定义主机名: 填写你的主域名子域名,如
www.example.com - 验证方式: 选择 TXT 验证
- Cloudflare 会生成一组 TXT 验证记录
4.4 在 DNS 服务商添加验证记录
前往你的主域名 DNS 管理后台(如阿里云 DNS),添加 TXT 记录:
- 主机记录:
_acme-challenge.www(只保留前缀部分) - 记录值: 复制 Cloudflare 提供的验证值
等待 DNS 生效后(通常几分钟),回到 Cloudflare 点击"验证",状态变为"有效"即表示成功。
五、国内 CDN 端:添加加速域名
5.1 添加加速域名
登录国内 CDN 厂商控制台(以京东云 CDN 或阿里云 CDN 为例),添加加速域名:
- 加速域名: 填写主域名,如
www.example.com - 源站设置: 填写辅助域名
source.example.com,端口 443,协议 HTTPS - 回源 HOST: 设置为
source.example.com(使 CDN 回源时 Host 头匹配服务器配置)
5.2 获取 CNAME 地址
CDN 厂商会分配一个 CNAME 地址,类似 www.example.com.w.cdndns.com。记录此地址,后续 DNS 分流要用。
5.3 申请 CDN 证书
在 CDN 厂商控制台为加速域名申请免费的 SSL 证书(通常 CDN 厂商免费提供),确保 HTTPS 方式回源和访问。
六、DNS 端:配置智能分流解析
这一步是关键——通过 DNS 的线路解析功能,让国内用户解析到国内 CDN,海外用户解析到 Cloudflare。
6.1 获取 Cloudflare 回源地址
在 Cloudflare 的自定义主机名页面,查看你的自定义主机名对应的回源目标 CNAME(通常是 source.example.com.cdn.cloudflare.net 类似的地址)。
6.2 配置 DNS 解析
前往主域名的 DNS 管理后台(如阿里云 DNS),为 www.example.com 添加以下解析记录:
- 默认线路(或境内线路): CNAME 指向国内 CDN 分配的地址(如
www.example.com.w.cdndns.com) - 境外线路: CNAME 指向 Cloudflare 回源地址(如
source.example.com.cdn.cloudflare.net)
具体操作步骤:
- 添加一条记录:主机记录
www,记录类型 CNAME,记录值填国内 CDN 地址,线路类型选"默认" - 添加另一条记录:主机记录
www,记录类型 CNAME,记录值填 Cloudflare 地址,线路类型选"境外"(或"海外") - 保存后,DNS 服务商会自动根据用户 IP 所属地区返回不同的解析结果
七、验证与测试
7.1 HTTPS 连通性验证
确保主域名 https://www.example.com 在以下两种场景下均可访问:
- 通过国内网络访问(使用国内 4G 网络或国内云服务器测试)
- 通过海外网络访问(使用海外 VPS 或代理测试)
7.2 证书状态检查
国内 CDN 和 Cloudflare 都应能提供有效的 SSL 证书。https://www.example.com 在浏览器中的证书信息应该由对应的 CDN/Cloudflare 签发。
7.3 性能对比
用测速工具对比配置前后的访问延迟:
- 国内用户:预期延迟大幅降低(国内 CDN 边缘节点就近响应)
- 海外用户:经过 Cloudflare 全球网络的智能路由优化,延迟和稳定性均有提升
八、方案优势与注意事项
8.1 优势
- 低成本: 无需购买多台服务器,Cloudflare 免费套餐即可使用自定义主机名功能
- 无侵入: 不需要修改网站代码或服务器架构,仅在 DNS 和 CDN 层面配置
- 双向加速: 国内用户享受国内 CDN 的快速响应,海外用户获得 Cloudflare 的全球加速
- SSL 全覆盖: 国内 CDN 和 Cloudflare 都支持 HTTPS,全链路加密
8.2 注意事项
- DNS 缓存: 修改 DNS 后需要等待 TTL 时间生效(建议提前将 TTL 调低至 60 秒再修改)
- CDN 回源带宽: 国内 CDN 回源到服务器需要确保服务器带宽充足,如果源站在海外,国内 CDN 回源延迟可能较高
- 证书同步: 国内 CDN 和 Cloudflare 的 SSL 证书由各自平台管理,无需在服务器端额外维护
- Cloudflare 回源协议: 建议将 Cloudflare 的 SSL/TLS 加密模式设置为"完全"(Full)或"完全(严格)"以确保端到端加密
九、总结
通过"双域名 + DNS 智能分流 + 双 CDN 回源"的方案,我们以极低的成本实现了网站流量的全球智能调度。国内用户由国内 CDN 节点就近加速,海外用户则由 Cloudflare 的全球网络承载,互不干扰且各自获得了最优的访问体验。
这套方案的优雅之处在于——它完全在基础设施层面完成配置,不需要修改任何业务代码,不会引入额外的运维复杂性。对于有国际访问需求的个人站长、中小团队来说,是一种性价比极高的全球加速方案。