Nginx客户端连接超时核心参数包括:1. keepalive_timeout控制长连接空闲保持时间;2. client_header_timeout限制请求头读取超时;3. client_body_timeout控制请求体传输间隔超时;4. send_timeout设定响应发送间隔超时;需依业务场景协同调优。

在 Nginx 的 http 块中,控制客户端连接超时的核心参数有多个,它们作用于不同阶段,需按实际场景合理组合设置,否则可能引发连接中断、请求失败或资源堆积。
keepalive_timeout:长连接保持时间
定义客户端与 Nginx 建立的 HTTP Keep-Alive 连接在空闲状态下最长保持多久。超过该时间,Nginx 主动关闭连接。
- 语法:
keepalive_timeout timeout [header_timeout]; -
timeout是服务器等待新请求的最长时间(单位秒),默认 75s; -
header_timeout(可选)是发送响应头后等待客户端确认的超时,通常不设; - 建议值:内网服务可设为 60–120,公网 API 或高并发场景建议 15–30,避免连接长期占用 worker 进程。
client_header_timeout:请求头读取超时
限制 Nginx 读取客户端 HTTP 请求头的最大等待时间。若客户端未在时限内发完请求行和所有请求头,Nginx 返回 408 Request Timeout。
- 默认值为 60 秒;
- 适用于防止慢速 HTTP 攻击(如 Slowloris),但不宜设得过短,否则影响弱网用户或大 Header 场景;
- 常见调优值:10–30 秒,移动端或复杂鉴权头较多时建议不低于 15 秒。
client_body_timeout:请求体读取超时
控制 Nginx 接收客户端请求体(如 POST 数据、文件上传内容)时,两次数据包之间的最大间隔时间。不是整个上传总耗时,而是“空等”时间。
- 默认 60 秒;
- 若上传大文件且网络波动,单次传输间隙超过该值即中断;
- 配合
client_max_body_size和client_body_buffer_size使用更稳妥; - 建议:普通表单 10–20 秒,文件上传服务可设为 60–120 秒,并确保后端应用层也有对应超时兜底。
send_timeout:响应发送超时
设定 Nginx 向客户端发送响应时,两次写操作之间的最大等待时间。适用于响应体较大或网络较慢的场景。
- 默认 60 秒;
- 仅作用于已建立连接后的响应阶段,不影响请求接收;
- 注意:该超时不触发重试,超时即断连,客户端可能收到不完整响应;
- 建议值:10–30 秒,高延迟链路(如跨境 CDN 回源)可适度放宽,但不宜超过 60 秒。
这些参数共同构成客户端连接生命周期的超时防护体系,需结合业务类型、网络环境和后端处理能力综合调整,避免过度保守导致体验下降,也避免过于宽松引发连接堆积或 DoS 风险。










