CDN-502 问题排查

浅谈:

502 问题就是客户端请求服务端超时而返回的一个网络 http 错误码,那么 502 一般是什么状态产生的呢?

如果三次握手失败一般都是返回的 504 ,网关超时。
三次握手成功,但是首包超时,或者客户端 read payload 超时,一般是 502 。
如果服务端应用处于不可用状态,一般是直接返回 500 。

分析:

  • 可以通过 ipip.net 解析其他地区覆盖的 CDN 节点,测试看看是否所有地区都是 502 。如果其他地区测试也都是 502 ,说明访问 CDN 出现了问题。还是只有个别 CDN 节点失败,如果个别 CDN 节点失败说明,和客户端的网络是有关联的。
  • 固定原站直接测试看下返回的状态是否是 200 ,如果原站都是 502 的话说明原站就有问题了。
  • 固定 CDN 节点访问 502 时,看看 CDN 节点的响应头,via 头中是否全部都是 M 的标志,如果都是 M 标志说明时 MISS 回源的过程中返回的 502 ,那可能和回源链路,或者原站有安全策略等关联。
  • 如果原站时国外或者国内,访问 CDN 需要跨过回源时,会经常出现 502 的情况,一般和国际链路出口阻断有关系,需要判断是否存在跨过回源的可能性。

案例:

客户搭建 nginx ,然后通过 proxy_pass 的方式替换域名请求头回到 CDN 出现了 502。

image

排查:

按照排查思路逐步测试。

1、我们自己客户端 curl 直接固定 CDN 节点发现测试时正常的 200 ,没有 502 的情况出现,说明 CDN 正常服务。

2、而用户端 proxy 的机器上就能复现,需要用户提供下 proxy 机器上 ping 到的 CDN IP 后,再固定 CDN IP 发现确实 502 了。但是用户表示固定我们提供的其他节点都是正常的返回 200 ,说明可能和节点有关。

3、根据用户提供的节点我们发现这个 IP 已经不再服务用户,而且 DNS 解析也并没有解析到对应的 IP 上,但是用户怎么访问到的呢?
经过沟通发现时用户绑定的 /etc/hosts 的方式进行 proxy 的,而之前的节点已经更新,用户没有及时更新导致。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值