Nginx反向代理隔三差五502:最后发现是upstream keepalive与超时的连环坑
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
一台前置Nginx反代后端业务接口,平时很稳,可一到业务高峰期就隔三差五返回502。点一下刷新又好了,过几分钟再犯。后端起服务没崩、没报错,这502到底哪来的?一句话看懂 502时有时无、重启即好,往往是Nginx复用了上游已经关闭的连接,或代理超时设置不当——两个坑叠一起,就成了"玄学"故障。 一、现象:502时有时无,服务本身没挂现场特征很典型: · 502出现有规律,多在并发上来或空闲一段时间后。 · 重启Nginx后立刻"痊愈",过一会儿又复发。 · 上游后端日志里几乎查不到对应报错。
同样的请求,有时候通、有时候502——先别怀疑后端,看看Nginx自己。 二、第一个坑:upstream keepalive 复用了已关闭的连接当你在 upstream 里配了
上游已把连接掐断,Nginx却还拿它复用发请求,一撞一个502。 三、第二个坑:代理超时设置不当即使连接没断,后端响应稍慢,也会触发Nginx的代理超时。常见三个参数:
若接口本身耗时接近超时值,波动一下就可能踩线报502。
把连接、读、写三档超时按业务实际耗时调开,别再让"慢一点点"触发502。 四、定位与修复按这套流程走一遍,基本能对症:
连接池与超时调好后,链路保持畅通,502告警消失。 小结 502"玄学"大多不玄:要么是keepalive复用了上游已关闭的连接,要么是超时参数踩线。先看error.log分清方向,再对症调参,Nginx反代就能稳稳当当。 阅读原文:原文链接 该文章在 2026/11/11 11:15:24 编辑过 |
关键字查询
相关文章
正在查询... |