回源异常怎么定位
源站直连正常、经 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 回源网段、多个源站里有一台配置不同、或者证书链在部分节点上校验失败。这类问题靠反复刷新页面很难验证,需要用拨测工具从多个地域持续请求并统计错误分布,必要时临时把某个源站摘除做对比,才能把范围收敛到具体节点或具体网段上。