CDN Origin Troubleshooting

CDN 返回 502 Bad Gateway 怎么排查?

先确认 502 是 CDN 生成、源站 Nginx 生成,还是源站应用生成。三者页面相似,修复位置完全不同。

第一步绕过 CDN 验证源站携带正确 Host 和 SNI,不要只访问裸 IP。

先确认错误来自哪一层

证据更可能的来源下一步
响应头和错误页带 CDN 标识CDN 无法成功回源查看 CDN 回源日志、状态与配置。
绕过 CDN 后仍由 Nginx 返回 502源站 Nginx 到应用失败检查 proxy_pass、应用进程和 Socket。
只有某些地区或节点出现节点到源站网络、ACL 或证书差异对比节点、IPv4/IPv6 和源站防火墙。
等待固定时间后返回 504已连接上游但响应超时检查慢查询、外部接口和应用线程池。

使用 HTTP 状态与响应头检测保存实际状态码、跳转与服务器响应头,再与源站测试对比。

用正确 Host 和 SNI 绕过 CDN

直接打开 https://源站IP 往往会命中默认证书或默认虚拟主机,不能代表真实域名。应使用 --resolve 把域名临时指向源站 IP:

curl -sv --resolve example.com:443:203.0.113.10 \
  https://example.com/ -o /dev/null
curl -sv --resolve example.com:80:203.0.113.10 \
  http://example.com/ -o /dev/null

如果该请求正常而 CDN 仍 502,问题集中在回源配置或 CDN 到源站路径;如果同样 502,则继续查源站 Nginx 和应用。

CDN 回源配置逐项核对

  1. 回源地址。确认源站 IP 没有在迁移后变更,也没有误填内网地址或旧负载均衡。
  2. 回源端口与协议。CDN 用 HTTPS 回源时,源站 443 必须可达并返回可信证书;不要把 HTTPS 发到只提供 HTTP 的端口。
  3. 回源 Host。源站虚拟主机依赖 Host 区分站点,错误 Host 可能命中默认站点、403 或 502。
  4. TLS SNI。HTTPS 回源需要正确 SNI,证书必须覆盖回源主机名。
  5. 源站访问控制。若只允许 CDN IP 段,必须按服务商公布列表及时更新 IPv4/IPv6 规则。

源站 Nginx 和应用怎么查

sudo nginx -t
sudo tail -n 100 /var/log/nginx/error.log
sudo ss -lntp
curl -I http://127.0.0.1:应用端口/
sudo journalctl -u 应用服务 --since '15 minutes ago'

connection refused 通常表示应用没监听或端口错误;no live upstreams 表示 upstream 中没有可用节点;upstream prematurely closed connection 表示应用在完整返回前断开。更完整的源站判断见 Nginx 502/504 指南

先找失败原因,再决定是否调大超时。盲目增加 proxy_read_timeout 会把应用慢或死锁变成长时间占用连接。

常见问题

清除 CDN 缓存能修复 502 吗?

通常不能。502 多为实时回源失败,清缓存甚至会让更多请求立即回源。只有 CDN 缓存了异常页面时清理才有帮助。

源站浏览器访问正常,为什么 CDN 仍回源失败?

你的浏览器 IP 可能被允许,而 CDN 节点被防火墙拦截;也可能 CDN 使用不同端口、Host、SNI 或 IPv6。

应该临时暂停 CDN 吗?

业务持续不可用且确认源站可承受直接流量时,可将 DNS 临时切回源站,但要评估安全、容量和原 TTL。

作者与维护

作者与维护: 核对方式:公网实测与官方资料 最后核对:2026年8月21日

本文以标准 HTTP 代理、TLS SNI 和 Nginx upstream 行为为依据。可通过反馈表单提交复现。