/1dreamGN/Blog

1dreamGN

国内EdgeOne+国外Cloudflare和ESA智能分流访问

22
2025-12-21

前言

最近在给网站做cdn加速,白嫖了腾讯的EdgeOne和阿里的esa,目前就这一个站,这么多cdn都不用的有点浪费了,EdgeOne国内速度很快,esa海外比EdgeOne快,加上Cloudflare直接让网站智能分流,延迟巨降。

开始

分线路解析

先不管cf,首先先将域名在eo和esa中添加上去,并且在国内dns服务商上面添加cname解析。

eo的cname一定要解析境内,esa和Cloudflare解析默认即可。

先别开IPv6服务,eo的IPv6服务有点拉跨,回源的时候巨慢无比。

esa同理,缓存配置什么的就不多说了,这几家都可以设置规则模版,根据网站类型自己配置即可。

接下来就是Cloudflare,和这两家不同,Cloudflare上面有个自定义主机名的功能,首先要先准备两个域名,准备两个域名,一个为主域名,另一个为回源域名,其中主域名就是你要用来对外访问的业务网站,回源域名则必须托管在 Cloudflare 用于回源。

先添加回源域名,ns解析该域名,由Cloudflare进行解析托管。

添加dns解析,将业务ip使用A记录解析,并开启代理状态。

然后点击SSL/TLS中的自定义主机名选项,自定义主机名功能要绑定信用卡订阅该功能,该功能有100免费额度,绑定后开通功能,将回退源填写回源域名,自定义主机名填写业务域名,源服务器同样是回源域名。

添加后会显示让解析的主机记录,记录类型,记录值,将这些东西添加到dns解析,解析后等待状态更改成有效,将DCV委派也解析了。

完成之后创建一个dns解析,解析记录为cname,记录值为Cloudflare的回源域名,线路选择默认即可。

现在使用dig命令测试是否分流成功,分别使用阿里dns、Cloudflare dns和谷歌dns,如下图所示,已经成功分流。

itdog测试一下延迟,国外节点esa和Cloudflare已经分流,国内使用eo。

EO→CF 嵌套

将上面已配置的Cloudflare回源域名直接配置到edgeone的业务域名的源站配置上面,因Cloudflare回源域名已经配置ssl,回源协议使用HTTPS。

切记关闭Cloudflare的IPv6兼容性,eo回源IPv6太慢,两个cdn的缓存配置要一致。

Cloudflare源站直连效果:

eo加速效果:

原理:用户→EO 节点→CF 节点→源站,可使用Cloudflare的Worker反代国内不能直连的网站并用edgeone加速。

弊端

HTTPS到期的续期可能会失败。

不同 CDN 的 CNAME 分流本身不会直接 “冲突”,但会导致 ACME 验证流量被导向错误节点,从而触发续期失败—— 这才是多 CDN 证书自动续期的核心风险,而非 CNAME 记录本身冲突。

核心逻辑:CNAME 分流是 “路径错配”,不是 “记录冲突”

CNAME 记录本身不会冲突:DNS 规范中同一域名只能有 1 条 CNAME(或与 A/AAAA 互斥),多 CDN 分线路解析时(如国内 CNAME 到 EO、国外 CNAME 到 ESA/CF),本质是按地域 / 运营商返回不同 CNAME,DNS 层面无冲突。

真正的风险是验证流量 “跑偏”:CA(如 Let’s Encrypt)发起 ACME 验证时(HTTP-01/DNS-01),流量可能被分流到非目标 CDN 节点,导致无法返回正确校验值,最终验证失败。

所以,最好需要自己做好ssl证书的自动化部署策略。