在http、server或location块中配置keepalive_timeout可启用长连接,优先级location>server>http;支持一个必填秒数(服务端等待时长)和一个可选秒数(响应头提示值);不同场景推荐值不同,需配合keepalive_requests等指令使用。

直接在 http、server 或 location 块中写入 keepalive_timeout 指令即可启用长连接,关键在于位置选择和数值匹配业务场景,不是加了就一定有效。
配置位置决定作用范围
该指令可放在三个层级,优先级从高到低:
-
location 块:只对特定路径生效(如
/api或/stream),适合差异化策略 - server 块:仅对该域名或 IP 的服务生效,适合多站点独立调优
- http 块:全局默认值,所有虚拟主机继承,推荐作为基础设置起点
语法格式与两个参数的实际意义
指令支持一个或两个数值:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 第一个值(必填):Nginx 在响应结束后等待下一个请求的最长时间(秒),超时即关闭 TCP 连接
- 第二个值(可选):写入响应头
Keep-Alive: timeout=N的提示值,仅作客户端参考,不影响 Nginx 行为
例如:keepalive_timeout 60 55; 表示服务端最多等 60 秒,同时告诉浏览器“建议你在 55 秒内复用”。
典型业务场景推荐值
不同流量模式需要不同设定,不能统一套用:
- 静态资源服务(图片/JS/CSS):60–120 秒,浏览器批量加载复用率高
- 移动端 API 或 Web App 后端:15–30 秒,兼顾弱网建连成本与连接及时释放
-
微服务间高频调用:5–15 秒,配合
keepalive_requests 50–100防止连接积压 -
SSE 推送或内网管理后台:≥3600 秒(如
keepalive_timeout 3600;),但必须同步调大云 LB 和后端超时
必须配套的关键配置
单设 keepalive_timeout 效果有限,需联动以下几项:
-
keepalive_requests:限制单连接最大请求数,默认 100,API 场景建议调至 200–5000 -
client_header_timeout和client_body_timeout:必须 ≤keepalive_timeout,否则可能提前断连 - 若用反向代理,还需在
upstream块配keepalive 32;,并在location中加proxy_http_version 1.1;和proxy_set_header Connection "";










