他的回复:
偶发 502 在 2核2G 的机器上最常见的三个原因:1. 后端进程挂了或被 OOM 杀掉:2G 内存很容易被 PHP-FPM/Java/Node 吃满。查 dmesg -T | grep -i oom,以及后端服务日志、systemctl status。PHP-FPM 可适当调小 pm.max_children,Java 限制 -Xmx,并加 1~2G swap 兜底。2. 后端处理能力不足/连接数打满:PHP-FPM 报 "server reached pm.max_children",或后端 worker 全忙,新请求被拒,Nginx 就返回 502。看后端日志和 Nginx error.log 中的 "connect() failed (111: Connection refused)" 或 "upstream prematurely closed connection"。3. upstream 配置/超时不合理:upstream 地址或 sock 路径偶尔不可达、keepalive 连接被后端先关闭等。可设置 proxy_connect_timeout / proxy_read_timeout,使用 keepalive 时加 proxy_http_version 1.1; proxy_set_header Connection ""; 若用 unix socket,确认权限和 listen.backlog。排查顺序:先 tail -f /var/log/nginx/error.log 抓 502 时刻的具体报错,再对照上面三类定位,基本都能找到原因。