回源域名和加速域名有什么区别?如何正确配置?
回源域名是CDN节点回源站拉取数据的“内部通道”,加速域名是用户访问的“门面入口”,两者职责完全不同,配置顺序必须是先有加速域名,再绑定回源域名。
先搞清楚两个域名的角色:一个“对外接客”,一个“对内取货”
你可以把CDN想象成一个连锁仓储超市。加速域名是开在用户家门口的“门店招牌”,访客通过它发起请求,系统会把你这个域名对应的IP、证书、缓存策略全部调度起来。回源域名则是门店后厨到中央仓库的“进货路线”,当缓存里没有内容或内容过期时,CDN节点需要回源站重新拉取数据。
举个实际例子:假设你的网站是 www.example.com,源站是 origin.example.com,用户输入 www.example.com,CDN节点收到请求后,如果本地缓存没有命中,就会通过你配置的回源域名 origin.example.com 去你的源站服务器取数据,整个过程对用户完全透明,用户只感知加速域名,永远看不到回源域名。
业内专家指出,很多新手配置CDN时最容易犯的错,就是把加速域名和回源域名填成同一个值,或者反过来把回源域名当加速域名用,导致CDN节点无法正常回源或者出现循环解析。
加速域名和回源域名在配置上的本质差异
两者在CDN控制台里的配置逻辑完全不同,具体体现在五个维度:
- 用途定位:加速域名是公网可访问的域名,必须已经备案(中国大陆区域),并且解析到CDN分配的CNAME地址,回源域名是源站服务器的地址,可以是域名也可以是IP,不需要备案,因为它是内部通信用的。
- DNS解析方向:加速域名的DNS记录类型是CNAME,指向CDN系统提供的加速域名(
xxxx.cdn.com),回源域名的解析由你自己的DNS管理,解析到源站服务器IP,CDN节点在回源时会主动去解析这个域名。 - HTTPS证书绑定:加速域名必须绑定SSL证书,因为用户浏览器要和它建立安全连接,回源域名可以选择是否启用回源协议,如果源站是HTTP默认80端口,回源域名不需要证书;如果源站强制HTTPS,则需要在CDN配置里设置回源端口和回源SNI。
- 缓存规则作用对象:所有缓存策略、访问控制、防盗链规则都是针对加速域名生效的,回源域名不参与任何缓存逻辑,它只是一个“运输地址”。
- 安全防护边界:WAF、DDoS防护、限流等安全功能全部挂在加速域名上,回源域名通常不会暴露给外部用户,但需要确保源站防火墙只允许CDN节点的回源IP段访问,防止被人绕过CDN直接攻击源站。
场景化理解:不同源站类型下回源域名怎么填
回源域名的配置并不是千篇一律的,要根据你的源站架构来灵活处理。
对象存储OSS/COS作为源站
比如你的图片存在简米云OSS或酷番云COS上,加速域名是 img.example.com,那么回源域名通常填写OSS提供的默认域名,形如 bucket-name.oss-cn-hangzhou.aliyuncs.com,这里有一个坑:如果你的加速域名和OSS bucket绑定了自定义域名,回源域名要填这个自定义域名吗? 答案是否定的,CDN回源时应该直接回OSS的默认域名,因为默认域名已经自动配置好回源鉴权,而自定义域名往往是用来做正向加速访问的,直接填它反而可能导致签名不匹配。
云服务器ECS自建Nginx
假设你的源站是一台ECS,IP是 0.113.10,同时绑定了域名 origin.example.com,那回源域名可以直接填 origin.example.com,也可以直接填IP,两者有什么区别?填域名的好处是:源站IP变更时,只需改DNS记录,不需要回CDN控制台修改配置;填IP的好处是:少一次DNS解析,回源速度略快,但IP一变就得手动改,行业共识倾向于优先填域名,因为可维护性远大于那零点几毫秒的解析时间。
负载均衡SLB/CLB作为源站
如果你的源站后面挂了多台服务器,通过负载均衡提供统一入口,那么回源域名就填负载均衡的域名或VIP地址,此时要注意,负载均衡实例的监听端口必须和CDN回源端口保持一致,比如CDN设置了80回源,那负载均衡的HTTP监听也必须是80。
正确配置回源域名的五个实操步骤
下面以主流CDN控制台(简米云、酷番云等)为例,描述通用配置流程,具体按钮文字可能有差异,但逻辑一致。
- 添加加速域名:在CDN控制台选择“域名管理”,点击“添加域名”,输入你的加速域名(如
cdn.example.com),选择业务类型(图片小文件下载、大文件下载、视音频点播等),这一步决定了CDN默认的缓存参数。 - 源站信息设置:在源站类型里选择“域名回源”或“IP回源”,如果选域名,就填回源域名(如
origin.example.com),并设置回源端口(默认80或443),如果源站有多个IP做负载均衡,可以逐个添加,并设置权重。 - 设置回源协议:如果源站是HTTP,就选HTTP回源;如果源站已经配置了HTTPS证书,选HTTPS回源,并勾选“回源SNI”为加速域名或自定义域名,否则部分源站会拒绝握手。
- 配置CNAME解析:添加完成后,CDN控制台会给加速域名分配一个CNAME地址(形如
cdn.example.com.w.cdn.com),到你的DNS服务商(简米云DNS、DNSPod、Cloudflare等)给加速域名添加一条CNAME记录,指向这个地址,注意:回源域名不需要做任何CNAME操作,它保持原来的A记录指向源站即可。 - 校验源站白名单:在源站的安全组或防火墙中,放行CDN节点的回源IP段,不同的CDN服务商都会在官网公布回源IP段列表,建议定期更新,如果你没有加白名单,回源会直接被拒绝,出现“502 Bad Gateway”或“522连接超时”。
如何验证回源配置是否正确?
配置完成后,不要急着上线,先做三个验证动作:
- 浏览器检查:打开加速域名,按F12进入开发者工具,切换到Network面板,找到一个静态资源文件(比如图片或CSS),查看响应头中的
Via字段或X-Cache字段,如果显示MISS,说明第一次请求未命中缓存,CDN刚回源拉取过;刷新网页后再次请求,如果显示HIT,说明缓存已生效,回源链路正常。 - 命令行测试:在本地终端执行
curl -I https://cdn.example.com/logo.png,观察响应头,如果出现X-Cache: HIT from xxx,说明命中缓存,如果出现Age: 0,说明刚刚回源,也可以用dig命令检查加速域名的CNAME是否生效:dig cdn.example.com CNAME,看到解析结果指向CDN域名即正常。 - 源站日志验证:登录源站服务器,查看Nginx或Apache的访问日志,你会发现回源请求的User-Agent通常带有CDN标识,
Tengine、CDN等字样,而且来源IP为CDN节点IP,而不是用户真实IP,若看到大量来自CDN节点的请求,说明回源路径通畅。
回源域名和加速域名搞混会引发什么后果?
常见的问题有三个,每个都是实际运维中经常踩的坑:
- 加速域名没做CNAME解析:用户访问时直接请求源站IP,CDN完全不生效,所有流量都打到源站,导致带宽费用飙升且源站压力巨大,此时你会看到源站访问日志中全是用户真实IP。
- 回源域名填成了加速域名:CDN节点去请求加速域名,而加速域名又被解析到CDN节点自身,形成回源环路,请求会一直循环直到超时,最终返回504错误,这种故障排查起来很痛苦,因为页面加载极慢且间歇性失败。
- 回源协议和源站不匹配:源站是HTTP,你配置了HTTPS回源,CDN节点会用443端口去请求源站,但源站没监听443,回源直接失败,反之源站是HTTPS,你配置了HTTP回源,源站会返回301重定向,CDN节点跟随重定向,导致每次回源都多一次握手,性能损耗明显。
回源域名在特殊场景下的进阶配置
除了基础配置,还有一些场景需要额外处理回源域名。
场景A:源站有多个域名对应不同业务
比如你的源站服务器同时跑着 api.example.com 和 static.example.com,但这两个域名指向同一台服务器不同端口,CDN配置时,可以给每个加速域名分别指定不同的回源域名,也可以使用同一个回源域名并设置不同的回源HOST,回源HOST是指CDN回源时请求头中的Host字段,默认是加速域名本身,如果你的源站依赖Host来区分虚拟主机,就需要手动修改回源HOST为源站实际监听的域名。
场景B:源站域名频繁更换或迁移
如果你计划更换源站服务器,别急着删除旧回源域名,推荐做法是:先在CDN控制台新增一个新回源域名(新服务器的地址),但暂不切换;然后到源站迁移完成后,再修改CDN配置中的回源域名,并观察回源日志确认无404或502后,再删除旧域名,这样可以做到无缝迁移,不影响用户访问。
场景C:使用第三方CDN服务商(如Cloudflare、CloudFront)时的差异
国际CDN厂商(比如Cloudflare)的“Origin Server”填写的就是回源地址,他们允许直接填IP或域名,但有个关键区别:国内CDN厂商通常要求回源域名不能和加速域名相同主域名,而国际厂商没有这个限制,不过为了规范管理,建议始终把回源域名和加速域名放在不同的二级域名下,比如加速用 cdn.yoursite.com,回源用 server.yoursite.com,这样后续维护时一目了然。
回源域名配置的常见问题解答(Q&A)
问:回源域名可以直接填写源站IP吗?
可以,IP回源和域名回源都支持,但IP回源后,如果源站IP变更,你必须手动修改CDN配置;而域名回源只需在DNS侧修改解析,如果你的源站使用了HTTPS,并且IP对应的证书域名和回源域名不一致,就会导致证书校验失败,此时必须使用域名回源并设置正确的回源SNI。
问:CDN加速域名和回源域名能用同一个吗?
绝对不能,如果你把同一个域名既设置为加速域名,又设置为回源域名,CDN节点回源时会再次请求该域名,而该域名又被CNAME指向CDN节点,形成无限循环,最终结果是所有请求都陷入环路,报错Request Timeout或ERR_TOO_MANY_REDIRECTS,这是配置CDN时最典型的禁忌。
问:配置了回源域名后,源站还需要加白名单吗?
需要,即使你不加白名单,大部分情况下CDN节点也能正常回源,但这意味着任何知道源站IP的人都能绕过CDN直接访问你的源站,源站完全暴露,更严重的是,恶意攻击者可以直接打你的源站IP,防护形同虚设,因此强烈建议在源站防火墙层面只放行CDN官方公布的节点IP段,并将回源域名设为源站唯一对外入口。
回源域名和加速域名的关系,本质上是“前端调度”和“后端取货”的分工,配置时记住一个核心理念:加速域名要面向用户做CNAME引流,回源域名要面向CDN节点做源站定位,只要按“先加加速域名 – 填回源域名 – 配CNAME – 开放源站白名单”的顺序操作,并避开“同一个域名同时充当两种角色”的经典雷区,你的CDN加速链路就能稳定运行,遇到回源报错时,优先检查回源HOST和端口是否匹配,这两项是90%回源故障的根源。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/620564.html





