如何排查 Nginx 轮询转发出现 502
nginx 轮询转发出现 502 bad gateway,通常是因为后端服务(如 php-fpm、gunicorn 或 java)无响应、进程崩溃或连接超时。排查时,应优先检查后端服务的运行状态和错误日志,确认其是否存活;其次检查 nginx 的 proxy_pass 配置是否正确指向了后端地址;最后调整 nginx 的超时参数以应对高负载下的延迟。

如何优化 Nginx 与后端的连接配置
解决 502 的关键在于确保 Nginx 能正确连接到后端,并在后端繁忙时合理等待。需要检查 upstream 块中的服务器地址是否可达,并适当增加 proxy_connect_timeout 和 proxy_read_timeout 的值,避免因后端处理慢而主动断开连接。同时,启用健康检查机制可以自动剔除故障节点。

# nginx.conf 示例配置
http {
upstream backend_pool {
server 192.168.1.10:8080;
server 192.168.1.11:8080;
# 设置连接超时为 10 秒,读取超时为 30 秒
proxy_connect_timeout 10s;
proxy_read_timeout 30s;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend_pool;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
当后端服务完全宕机时 Nginx 的行为是什么
当所有后端服务都宕机或不可达时,Nginx 会立即返回 502 错误,因为无法建立任何 TCP 连接。此时,即使增加了超时时间也无济于事,因为连接阶段就会失败。必须通过监控工具发现后端宕机并重启服务,或者在 Nginx 中配置 error_page 来向用户展示友好的维护页面,而不是直接暴露 502 错误。











