问题描述:
nginx 返回502 Bad Gateway
原因分析:
- 查看nginx错误日志大量 upstream timed out (110: Connection timed out)
- 排查后端服务线程状态,大连TIME_WAIT线程
- nginx与后端服务没有使用长链接,耗尽后端socket接口
- 服务器之间网络不稳定,请求失败太多导致Nginx认为没有存活服务从而记录日志:no live upstreams while connecting to upstream
解决方案:
- nginx配置keepalive 保持长连接即可,不用每个请求都创建新连接。
http {
upstream backend {
server 192.168.1.1:8080;
server 192.168.1.2:8080;
# 增加300连接池
keepalive 300
}
}
- 排查解决nginx与反向代理服务器之间的网络问题
- 使用参考配置提高Nginx并发和连接能力