参考:排查 502 Bad Gateway 的常见思路

  • 使用 Chrome 开发者工具(Edge等Chromium内核的浏览器也行)确认报错的接口,拿到基础信息
  • 修改 Chrome 生成的 cURL 命令直接请求后端,绕过 Nginx,快速确认是负载均衡的问题还是后端问题

image-20240424104706115

  • 查看 Nginx 的日志,在 access log 中检索报错的接口

  • 如果是 Nginx 层面的问题,查看 Nginx 的配置文件,确认是否有超时配置

  • 如果是后端服务的问题,根据 response 做基本判断

    • Connection refused 大概率是后端服务没启动
    • Empty reply from server 大概率是后端服务在处理请求的时候 panic 了,或者被 OOM kill 了
    • 如果后端返回 502,说明后端至少没 crash,可以继续查看后端服务日志
  • dmesg –T |grep –i "out of memory" 确认是否是 OOM 问题