On this page
Module ngx_stream_limit_conn_module
ngx_stream_limit_conn_module
模块(1.9.3)用于限制每个已定义键的连接数,特别是来自单个 IP 地址的连接数。
Example Configuration
stream {
limit_conn_zone $binary_remote_addr zone=addr:10m;
...
server {
...
limit_conn addr 1;
limit_conn_log_level error;
}
}
Directives
Syntax: | limit_conn zone number; |
Default: | — |
Context: | stream , server |
设置共享内存区域和给定键值的最大允许连接数。当超过此限制时,服务器将关闭连接。例如,指令
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
...
limit_conn addr 1;
}
一次每个 IP 地址只允许一个连接。
当指定多个limit_conn
指令时,将应用任何配置的限制。
当且仅当当前级别上没有limit_conn
指令时,这些指令才从上一级继承。
Syntax: | limit_conn_dry_run on | off; |
Default: | limit_conn_dry_run off; |
Context: | stream , server |
该指令出现在版本 1.17.6 中。
启用空运行模式。在此模式下,连接数不受限制,但是,在共享内存区域中,过多连接的数将照常计算。
Syntax: | limit_conn_log_level info | notice | warn | error; |
Default: | limit_conn_log_level error; |
Context: | stream , server |
为服务器限制连接数的情况设置所需的日志记录级别。
Syntax: | limit_conn_zone key zone=name:size; |
Default: | — |
Context: | stream |
设置共享内存区域的参数,该参数将保留各种键的状态。特别是,状态包括当前的连接数。 key
可以包含文本,变量及其组合(1.11.2)。空键值的连接不予考虑。用法示例:
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 字节。一个 1 兆字节的区域可以保留大约 3.2 万个 32 字节状态或大约 1.6 万个 64 字节状态。如果区域存储已用尽,则服务器将关闭连接。
Note
另外,作为commercial subscription的一部分,每个此类共享存储区的status information自 1.17.7 起可以是obtained或reset,而API。
Embedded Variables
$limit_conn_status
- 保留限制连接数(1.17.6)的结果:
PASSED
,REJECTED
或REJECTED_DRY_RUN