Nginx代理超时配置直接影响并发连接数稳定性,核心在于控制连接生命周期。1. keepalive_timeout建议公网设30秒、内网75秒;2. client_header/body_timeout公网设15秒防慢速攻击;3. proxy_read_timeout公网60–90秒、内网30秒;4. ssl_handshake_timeout公网15–30秒;5. 必须同步调大ulimit -n和net.core.somaxconn,避免“too many open files”或accept队列溢出。

Linux Nginx 代理超时配置直接影响服务器能稳定维持的并发连接数,不是单纯“允许多少连接”,而是决定连接“能活多久”“何时释放”“是否卡死”。配置不当会快速耗尽连接资源,导致新请求被拒绝、502/504 错误激增,甚至 worker 进程崩溃。
超时设置直接占用或释放连接槽位
Nginx 的并发连接能力 = worker_processes × worker_connections。但这个上限能否真正用满,取决于连接是否及时释放。以下超时项一旦设得过长,就会让连接长期挂起,占着茅坑不拉屎:
- keepalive_timeout:空闲长连接保持时间。设为 120 秒,意味着一个浏览器打开页面后,即使没再发请求,该连接仍占用一个 slot 长达 2 分钟;万级并发下,大量空闲 keepalive 连接会迅速吃光 worker_connections
- client_header_timeout / client_body_timeout:客户端发请求头或请求体超时。若设为 60 秒,而用户网络差或恶意慢速攻击(如 Slowloris),连接会在读取阶段卡住 60 秒,无法进入处理队列,却持续占用连接资源
- proxy_read_timeout / proxy_connect_timeout:Nginx 等待上游(如 Tomcat)响应的超时。若上游处理慢或线程池满,Nginx 会一直等——直到超时才断开。这段时间内,该连接既不算完成,也不释放,持续计入并发总数
ssl_handshake_timeout 影响建连效率,间接压垮 accept 队列
该参数专管 TLS 握手未完成的连接等待时长,不参与已建立连接的计数,但对高并发建连冲击极大:
- 设为 1–2 秒:公网环境下,弱网设备、移动客户端或 TLS 1.3 快速握手失败时,大量连接在握手阶段被秒杀,客户端重试加剧洪峰,accept 队列积压,触发 “accept queue overflow” 内核告警
- 合理值:公网建议 15–30 秒,内网可缩至 5–10 秒。过短不省资源,反而因频繁重连和握手失败,显著抬高有效并发压力
超时与系统资源形成连锁瓶颈
超时配置不是孤立参数,它和 Linux 内核、文件描述符、连接队列深度强耦合:
- 每个连接对应至少 1 个 socket,占用 1 个文件描述符。若 keepalive_timeout 过长 + worker_connections 设高,但 ulimit -n 未同步调大,会报 “Too many open files”,worker 进程直接退出
- 大量超时未释放的连接,会推高 net.core.somaxconn 和 net.ipv4.tcp_max_syn_backlog 队列压力。队列溢出时,SYN 包被丢弃,表现为客户端连接超时(connect timeout),而非 Nginx 返回错误
- error.log 中出现 “worker_connections are not enough” 或 “upstream timed out while reading response header”,往往是上游超时 + 本端 keepalive 没及时回收,双重挤压所致
调优建议:按场景分级控制生命周期
目标是让连接“该快则快、该断则断”,避免无意义滞留:
- 面向公网的入口层:keepalive_timeout 30s;client_header_timeout/client_body_timeout 15s;send_timeout 30s;proxy_read_timeout 根据业务容忍度设为 60–90s(不要盲目设 600s)
- 内网反向代理(Nginx → Tomcat):keepalive_timeout 可设为 75s(复用更充分);proxy_connect_timeout 5s;proxy_read_timeout 30s(上游响应应更快)
- 必须配套检查:ulimit -n ≥ worker_processes × worker_connections;net.core.somaxconn ≥ 65535;启用 multi_accept on;监控 stub_status 中 Active connections 和 Writing 数值突变


















