limit_conn_zone

'limit_conn_zone' 指令创建一个共享内存区域,用于限制每个指定键的并发连接数。 — NGINX HTTP Core

limit_conn_zone
http
语法limit_conn_zone key zone=name:size;
默认值none
上下文http
模块NGINX HTTP Core
参数2

说明

'limit_conn_zone' 指令用于 HTTP 上下文中,定义一个内存区域,用于跟踪指定键(例如远程地址)的连接数量。它允许您为单个 IP 地址或任何其他参数设置并发连接数限制,帮助缓解因过多连接导致的滥用或资源耗尽。 该指令接受两个参数:第一个是键,通常使用诸如 '$binary_remote_addr'(引用客户端的远程地址)或 '$servername'(基于服务器名的限制)之类的变量。第二个参数定义共享内存区域的大小(例如 '10m' 表示 10 兆字节)。该内存区域用于存储指定客户端的连接计数,允许基于实时连接进行高效跟踪和限制。 与 'limit_conn' 指令结合使用时,管理员可以指定每个键允许的并发连接数,从而增强安全性和性能。所设置的内存限制确保此跟踪在不消耗过多资源的情况下有效。

配置示例

http {
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    server {
        location / {
            limit_conn addr 10;
        }
    }
}

确保 zone 大小适合您的流量;过小可能导致错误的连接计数。

请记得在 server 或 location 块中定义 'limit_conn' 指令,以在设置 zone 后实际应用该限制。