Nginx 反代后端服务,平时好好的,高峰期偶发 502,后端日志又没明显异常。排查思路分享一下。
可能原因:
- 后端进程崩了或重启(看进程存活)。
- 后端 backlog 满了,新连接被拒(
ss -ltn看 Recv-Q)。 - keepalive 连接被后端单方面关闭,Nginx 还在用(典型坑)。
- 后端响应太慢,触发
proxy_read_timeout。
第三个最坑,解法是关掉 keepalive 或让后端发 RST:
upstream app {
server 127.0.0.1:3000 max_fails=3 fail_timeout=10s;
keepalive 16;
}
大家的偶发 502 都怎么治的?