reset_timedout_connection

指令 `reset_timedout_connection` 允许 NGINX 重置已超时的连接以回收资源。 — NGINX HTTP Core

reset_timedout_connection
httpserverlocation
语法reset_timedout_connection on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag

说明

该 `reset_timedout_connection` 指令用于 HTTP、server 和 location 上下文,用于管理超过允许非活动期限的空闲连接。启用后,该指令确保 NGINX 不会无限期地保持连接打开,避免不必要地消耗服务器资源。通过重置这些连接,NGINX 能在高负载下保持更好的性能,并通过释放本可分配给新请求而不是保持休眠连接的资源来提高响应性。 该指令接受单个参数,该参数是一个标志,用于表示是否启用此行为。将其设置为 'on' 时,NGINX 将系统性地检查已超时的连接并强制关闭它们。此设置在高流量环境中特别有用,因为由于客户端不活动,连接可能处于半打开状态。内部连接超时设置将决定这些空闲连接被识别和关闭的速度,因此通常与其他超时指令一起使用以微调连接管理。 需要注意的是,尽管该指令有助于管理资源使用,但配置不当可能导致过早终止连接,如果过于激进地重置连接,可能影响用户体验。该指令作为一种额外的安全措施,增强了 NGINX 服务器连接处理的稳健性。

配置示例

server {
    listen 80;
    server_name example.com;

    location / {
        reset_timedout_connection on;
        proxy_pass http://backend;
    }
}

确保超时设置 (例如 `keepalive_timeout`) 已正确配置,以避免终止重要连接。

注意不要过度重置连接,这可能会导致访问您 Web 应用的用户体验变差。