proxy_half_close

在 stream 模块配置中,`proxy_half_close` 指令控制 NGINX 在客户端连接关闭后是否关闭 upstream 连接。 — NGINX Stream Core

proxy_half_close
streamstream server
语法proxy_half_close on | off;
默认值off
上下文stream, stream server
模块NGINX Stream Core
参数flag

说明

`proxy_half_close` 指令用于 NGINX 的 Stream 模块上下文,具体用于 `stream` 和 `stream server` 配置。启用时(设置为 'on'),它允许服务器在客户端完成发送数据并关闭连接后关闭 upstream 连接。在某些协议中,upstream 服务器在客户端断开后可能仍需继续处理数据,因此此行为有助于提高资源利用效率并正确处理短暂连接。 如果未设置该指令,默认('off')情况下 NGINX 在客户端关闭后仍会保持 upstream 连接。这可能导致不必要的资源消耗,因为 upstream 会比所需时间保持打开。`proxy_half_close` 在 downstream 连接频繁且短暂的场景,或需要高效管理 socket 状态以优化性能时尤其重要。 `proxy_half_close` 指令接受一个参数:`on` 或 `off`。设置为 'on' 可启用半关闭行为,而 'off'(默认)表示 NGINX 不会在客户端断开后立即关闭 upstream 连接。此设置可根据您的应用需求和所使用协议的类型,在管理连接生命周期时提供灵活性。

配置示例

stream {
    server {
        listen 12345;
        proxy_pass backend_servers;
        proxy_half_close on;
    }
}

请务必仔细测试连接行为;启用此项可能会改变客户端与上游服务器之间的数据流动方式。

如果与期望会话持久性的协议一起使用,请确认 half-closing 不会导致意外断开。