You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx工作进程长期无法终止的原因咨询(TCP负载均衡场景)

Nginx worker process状态1
Nginx worker process状态2

Nginx工作进程显示“worker process is shutting down”却无法终止的原因及解决办法

核心原因

  • 未关闭的长连接:TCP负载均衡场景中,若后端存在长连接(如持久化TCP连接、WebSocket),Nginx默认会等待这些连接主动关闭后才终止worker进程,若连接一直不主动断开,进程就会长期处于shutdown状态。
  • 缺失超时配置:未设置worker_shutdown_timeout,也未配置TCP代理相关的超时参数(如proxy_timeout),导致进程无限制等待连接关闭。
  • 系统调用阻塞:worker进程在与后端交互时,卡在某个系统调用(如读写操作)上,无法触发退出流程。
  • 资源泄漏:进程处理请求时出现内存泄漏,或持有未释放的文件句柄、共享内存等资源,导致无法正常退出。

解决措施

  • 配置worker shutdown超时:在nginx.conf的主块中添加worker_shutdown_timeout 30s;,指定进程等待连接关闭的最长时间,超时后强制终止。
  • 优化TCP连接超时:在stream负载均衡配置块中,设置proxy_timeout 5m;(根据业务实际调整时长),自动断开长时间无交互的连接。
  • 强制终止僵死进程:使用kill -9 <进程PID>强制杀死无法退出的worker进程,建议在业务低峰期操作,避免影响在线请求。
  • 排查阻塞点:用strace -p <进程PID>查看进程当前的系统调用,定位是否因后端无响应导致卡住。
  • 升级Nginx版本:若使用的是较旧版本,升级到最新稳定版,修复可能存在的TCP负载均衡场景下的退出逻辑bug。

内容的提问来源于stack exchange,提问作者Naveen Vikrama Prasad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:35:40