nginx中文文档-ngx_stream_limit_conn_module

ngx_stream_limit_conn_module模块(1.9.3+)用于限制每一个定义的关键字的连接数,尤其是从单个IP地址收到的连接数。

示例配置

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字节状态。如果存储区域耗尽,服务器就会关闭连接。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

You must enable javascript to see captcha here!