nginx并发连接控制模块ngx_http_limit_conn_module

Posted 悲观的积极主义者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx并发连接控制模块ngx_http_limit_conn_module相关的知识,希望对你有一定的参考价值。

模块: ngx_http_limit_conn_module

作用: 根据定义的key限制并发连接数

配置示例:

http {
    limit_conn_zone $binary_remote_addr zone=addr:10m;

    ...

    server {

        ...

        location /api/ {
            limit_conn addr 10;
            limit_conn_status 503;  
        }
    }
}

  

 说明: 示例中定义key(zone=addr)为addr,分配内存大小为10m(zone=addr:10m(如果限制域的存储空间耗尽了,对于后续所有请求,服务器都会返回 503),同一个ip($binary_remote_addr和服务器连接超过10个(limit_conn addr 10将会被拦截并返回503(limit_conn_status 503错误码

 

涉及指令:

  limit_conn_zone 

  limit_conn 

  limit_conn_status 

  limit_conn_log_level 

 

指令详解:

limit_conn_zone

语法: limit_conn_zone key zone=name:size;(设置限制规则、区域名称及分配的内存大小)
可配置区域: http

key: 必选项;设置限制规则;取值可以是text文本、nginx变量或两者的组合;实例中使用的nginx变量$binary_remote_addr表示根据每个ip限制并发

name: 必选项; 自定义一个区域名称; 任意字符串

size: 分配内存的大小

 

limit_conn 

语法: limit_conn zone number; (使用由limit_conn_zone定义的拦截规则, 并设置具体的限制连接数量)
可配置区域: http, server, location

zone: 必选项; 由limit_conn_zone(zone=name)定义的名称; 表示使用定义的哪个限制规则

number: 必选项; 正整数; 表示具体的限制连接数量

 

limit_conn_status 

语法: limit_conn_status code;
默认值: 503
可配置区域: http, server, location

表示超出limit_req配置的请求数量后返回给客户端的错误码使用该指令最低版本 1.3.15

  

limit_conn_log_level 

语法: limit_conn_log_level info | notice | warn | error;
默认值: limit_conn_log_level error;
可配置区域: http, server, location

当服务器拒绝处理由于速率超过或延迟请求处理而拒绝处理请求时,设置所需的日志记录级别。

最低版本: 0.8.18

  

  

  

 

以上是关于nginx并发连接控制模块ngx_http_limit_conn_module的主要内容,如果未能解决你的问题,请参考以下文章

【ngin】nginx 查看并发连接数的两种方法

基于Nginx实现访问控制连接限制

控制 Nginx 并发连接数

Nginx查看并发连接数

Nginx限制访问速率和最大并发连接数模块--limit (防止DDOS攻击)

nginx防攻击的简单配置