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

如何配置Nginx禁止主动断开空闲TCP Socket连接

Nginx Stream四层TCP反向代理10分钟空闲断开修复方案

问题根因

Nginx stream四层代理模块默认的空闲连接超时阈值为 600秒(10分钟),对应控制参数为proxy_timeout。该参数仅在stream上下文生效,和HTTP块的proxy_read_timeout/proxy_send_timeout等参数无关,在HTTP块配置超时规则不会对四层代理生效。
当TCP连接连续空闲时长达到该阈值时,Nginx会主动断开客户端与上游服务的连接,该行为和是否开启SSL卸载、客户端/后端服务自身的超时配置均无关联,和观测到的10分钟准点断开现象完全匹配。

修复方法

在stream的server块(或stream全局块)中添加proxy_timeout配置,将值设置为业务需要的1小时(3600秒)即可。
修改后的完整配置示例:

stream {
    upstream tcp-server {
        server localhost:33445;
    }
    server {
        listen 33446;
        # listen 33446 ssl;

        proxy_pass tcp-server;
        # 配置TCP连接空闲超时为1小时,单位支持s(秒)/m(分钟)/h(小时)
        proxy_timeout 3600s;

        # SSL证书配置
        # ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        # ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    }
}

配置生效操作与注意事项

  • 配置修改完成后,先执行nginx -t校验配置语法是否正确,确认无报错后执行nginx -s reload重载配置即可生效
  • 若需要所有stream代理服务统一使用该超时规则,可将proxy_timeout直接配置在stream块层级,无需每个server单独配置
  • 如果访问链路中还存在云负载均衡、硬件防火墙、操作系统TCP内核参数等其他节点,需要同步调整对应节点的空闲超时阈值,避免链路其他节点提前断开长连接

内容的提问来源于stack exchange,提问作者Jonathan D B Van Schenck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:54:08