首页/云/云网络与负载均衡速查/CDN 回源异常排障(404 与 5xx)
云 DNS 与 CDN49 条

CDN 回源异常排障(404 与 5xx)

源站直连正常而经 CDN 报错时,先区分边缘问题还是回源问题:看响应头与回源状态,再核对回源 Host、回源协议与端口、源站防火墙是否放行 CDN 回源网段、源站超时与限速、证书链。

回源异常怎么定位

源站直连正常、经 CDN 却报错时,先区分是边缘侧问题还是回源侧问题:看响应头里的缓存状态与回源状态,再依次核对回源 Host、回源协议与端口、源站防火墙是否放行了 CDN 回源网段、回源超时设置、以及源站证书链是否完整。定位的核心方法是对齐证据——把 CDN 的回源日志与源站的访问日志按同一时间的同一个请求比对,而不是各看各的。

基本信息

404回源 Host 错误、路径改写错误、源站确实无该资源
502 与 504源站拒绝或超时、回源端口协议不符、证书握手失败
放行源站有 IP 白名单或防火墙时,需放行 CDN 回源网段
证据CDN 回源日志与源站访问日志同时比对同一请求

典型使用场景

  • 上线后部分用户报资源 404,排查回源 Host 与路径改写
  • 源站加了防火墙策略后 CDN 间歇性 502,核对回源网段放行
  • HTTPS 回源偶发握手失败,检查源站证书链完整性
  • 慢资源被判超时,评估回源超时参数与源站处理耗时

复现回源与观察边缘响应

复现回源与观察边缘响应
curl -sv -H 'Host: cdn.example.com' http://origin.example.com/healthz \
  -o /dev/null 2>&1 | grep -E 'HTTP/|Connected'
curl -sI https://cdn.example.com/healthz | head -n 12
# 比对两侧的请求时间与状态码,确认问题出现在哪一段

状态码与方向

状态码排查方向
404回源 Host、路径改写、资源是否存在
502源站拒绝、端口协议不符、握手失败
504源站处理慢或回源超时过短
随机分布的错误回源网段未全部放行
仅凭 CDN 侧报错断定源站故障容易误判:先拿回源日志与源站日志对齐请求与状态码再定位。

随机性错误最值得警惕

如果错误是随机出现的(同一资源有时正常有时报错),通常不是配置写错,而是链路中的某一环不完整:源站防火墙只放行了部分 CDN 回源网段、多个源站里有一台配置不同、或者证书链在部分节点上校验失败。这类问题靠反复刷新页面很难验证,需要用拨测工具从多个地域持续请求并统计错误分布,必要时临时把某个源站摘除做对比,才能把范围收敛到具体节点或具体网段上。

易错点

  • 源站只放行 CDN 部分回源网段,表现为随机性 502
  • 回源超时时间过短,源站慢资源被判超时
  • 只看 CDN 侧错误不比对源站日志,定位方向反复摇摆
  • 多源站中一台配置不同,导致错误随机出现难以复现

数据来源与参考

  • 阿里云 CDN 回源失败排查文档
  • 腾讯云 CDN 故障排查文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌