502 Bad Gateway
一句话:反向代理(如Nginx)收到了请求,但后面真正处理业务的服务没有正常响应,常见原因是后端服务挂了、地址端口配错,或者响应超时。
它是什么
502错误发生在有反向代理的架构里:代理服务器本身工作正常,但它转发请求的目标(后端应用服务)没有给出有效响应——可能是后端服务根本没启动、崩溃了,或者配置的转发地址/端口不对。
适合干什么
- 网站突然打不开显示502错误页面时排查
- 反向代理配置后无法正常访问后端服务
不适合干什么
- 500错误(那是后端服务本身收到请求后处理过程中出错,和502的"根本没收到有效响应"不同)
普通人怎么用
先确认后端应用服务是不是真的在运行(用命令行工具连一下对应端口,或者看进程是否存在);检查反向代理配置里写的后端地址和端口是否正确。
进阶用户怎么用
查看反向代理(如Nginx)的错误日志,通常会记录具体是连接被拒绝、超时还是其他原因;如果是应用刚重启还没完全就绪就收到请求,也可能短暂出现502,需要检查是否有合理的启动等待/健康检查机制。
常见误区
- 以为502一定是代码有bug,实际很多时候是后端服务没启动或者部署配置(地址端口)出了问题,和业务代码逻辑本身无关
- 只重启了代理服务(Nginx)没有检查后端应用服务的状态,治标不治本
和相似工具的区别
- 和500错误的区别:500是后端服务收到请求、处理过程中自己报错;502是反向代理压根没收到后端的有效响应(可能后端根本没启动或者连不上)
入门步骤
- 确认后端应用服务进程是否正在运行
- 检查反向代理配置的转发地址端口是否正确
- 查看代理服务器的错误日志获取更多线索