示例配置
stream { limit_conn_zone $binary_remote_addr zone=addr:10m; ... server { ... limit_conn addr 1; limit_conn_log_level error; } }
limit_conn
语法:limit_conn zone number
默认:—
上下文:stream, server
为给定的键值设置设置共享内存区域以及最大允许的连接数。当超过这个限制,服务器会关闭连接。例如指令
limit_conn_zone $binary_remote_addr zone=addr:10m; server { ... limit_conn addr 1; }
允许一个IP同时只有一个连接。
当指定多个limit_conn指令时,任何配置的限制都会应用。
当且仅当当前层级中没有limit_conn指令时,指令会继承自上级。
limit_conn_log_level
语法:limit_conn_log_level info | notice | warn | error
默认:limit_conn_log_level error
上下文:stream, server
设置当服务器限制连接数时记录日志的等级。
limit_conn_zone
语法:limit_conn_zone key zone=name:size
默认:—
上下文:stream
设置保存各种关键字状态的共享内存区域参数。状态包含当前连接数。目前,支持关键字的值是客户端地址的二进制格式,指定为$binary_remote_addr。空关键字值的连接不计数。用法示例:
limit_conn_zone $binary_remote_addr zone=addr:10m;
这里,关键字是由$binary_remote_addr设置的客户端IP地址。$binary_remote_addr的大小IPv4地址是4字节,IPv6地址是16字节。保存的状态总是在32位系统上占用32或64字节,在64位系统上是64字节。1M的区域可以保存大约32,000个32字节状态或大约16,000个64字节状态。如果存储区域耗尽,服务器就会关闭连接。