做过多个出海项目的源站架构改造,碰到过一个高频坑:后端已经搭好 3‑4 台源站做集群,源站侧 LB 也配置完毕。接入 CDN 上线后压测发现,绝大部分回源请求全部打在其中一台源站上,其余源站长期空闲。一旦这台源站负载打满,大量回源超时,海外用户就会出现页面报错、资源加载失败。
根源在于:DNS 轮询解决不了 CDN 回源流量分配。CDN 边缘节点会做 DNS 结果缓存,解析一次之后会长时间复用同一个源站地址,流量根本不会均匀打散。想要真正做多源站容灾,必须使用 CDN 平台自带的**回源负载均衡(回源池)**能力。
一、哪些场景必须配置 CDN 回源负载均衡
- 业务部署多台同源地源站,希望回源流量按权重分摊;
- 搭建国内外双源站,希望海外边缘优先回海外源站;
- 需要源站故障自动容灾,某台源站挂掉无需人工改配置;
- 源站机器配置规格不一致,需要分配不同流量占比。
注意:回源负载均衡作用于「CDN 节点→源站」这一段,不会改变终端用户访问 CDN 节点的逻辑。
二、核心配置要点(360CDN 控制台实操)
- 构建回源池,录入全部源站 IP / 域名 支持同时填入 IP 和域名形式源站地址,不要继续使用单回源地址模式。
- 设置回源流量权重 配置不同源站的权重值,硬件性能更强的源站分配更高权重,性能较弱机器降低权重,避免小规格源站被打垮。不要全部默认 1:1,机器配置不一样会造成负载失衡。
- 配置业务层健康检查 不要只做 ICMP ping 网络探测,ping 通不代表 Web 服务正常。配置 HTTP 探测访问业务健康接口,设置超时时间、连续失败阈值。当探测连续失败,CDN 自动将该源站从回源池摘除;探测恢复正常后自动重新加入回源池接收流量。
- 地域定向回源策略 出海混合源站架构:东南亚、拉美等海外边缘节点,优先回源海外源站;国内回源走国内源站,降低跨洋回源链路延迟。
- 故障降级策略 全部源站都探测异常的兜底策略,可配置返回错误页面或者拒绝请求,避免暴露源站信息。
源站侧 Nginx 配套小提示
回源负载均衡是 CDN 侧能力,源站侧依旧要做好基础防护:
#源站限制仅允许CDN回源节点访问,避免源站被公网直接攻击
allow 360CDN回源IP段;
deny all;
⚠️生产环境务必定期更新 CDN 回源 IP 网段列表,防止规则失效。
三、主流 CDN 回源负载均衡能力横向对比
| 对比维度 | 360CDN | Cloudflare | 传统公有云 CDN |
|---|---|---|---|
| 多源站回源池 | IP、域名混合录入 | 仅企业版完整可用 | 支持多源站,配置项少 |
| 业务 HTTP 健康探测 | 支持自定义探测路径、状态码判断 | 规则集编写,上手成本高 | 大多只做网络层探测 |
| 流量权重调节 | 可视化权重配置 | 高阶付费功能 | 权重颗粒度粗 |
| 按区域调度回源 | 支持按边缘区域绑定优先源站 | 无原生能力,需要复杂规则 | 配置链路复杂 |
| 故障自动恢复 | 源站恢复探测正常自动加入回源池 | 恢复机制响应较慢 | 部分需要手动恢复 |
四、生产环境踩坑总结
- 只做 DNS 轮询代替 CDN 回源负载均衡:流量分配效果差,无业务健康检查,故障无法自动切换;
- 健康检查只 ping IP,不访问业务接口:机器网络通,但 Web 服务崩溃时依旧持续回源,业务故障;
- 权重全部设置相同,忽略源站硬件差异,低配源站被回源流量打满;
- 配置完成之后没有做故障演练,真的出现源站宕机,才发现切换策略不生效;
- 忽略回源 IP 白名单更新,源站暴露公网,绕过 CDN 直接遭受攻击。
五、运维建议
- 上线完成后,观察各源站的回源请求量监控,确认流量按照预期权重分配;
- 定期做源站故障模拟演练,验证自动摘除、自动恢复流程;
- 大促、版本发布前复核回源池配置、健康检查阈值;
- 源站扩容、下线机器,及时同步修改 CDN 回源池配置。
回源负载均衡是出海业务高可用架构很关键一环,多源站架构不要只做源站侧的负载均衡,CDN 回源侧调度同样不能缺失。
参考文档:360CDN 回源池与回源负载均衡官方文档