nginx-请求限制模块以及查看默认的核心模块

HttpLimitReqest模块属于内置的核心模块,不需要额外的安装第三方模块。

进入nginx安装目录,输入:

cat auto/options | grep YES

即可查看内置的核心模块和第三方模块

如图上半部分为核心模块,下半部分为我们编译安装时./configure后面跟者安装的一些模块。


    #请求模块
    limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;

    #连接模块
    limit_conn_zone  $binary_remote_addr  zone=con_zone:10m;
 

而这两个模块就在内置模块中


1.请求模块  limit_req_zone

 请求模块 限制某个ip的请求速度 ,如下面这段配置

limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;

定义了一个请求模块,这个模块名字为one,并开辟了10M的空间,用于记录binary_remote_addr ,rate=1r/s 限制对于同一ip的请求速率,限制平均速率为每秒只能请求一次,超过将返回对应的错误码。

然后在需要限制的location中使用该变量

 location /mystatus {
           stub_status on;
         #limit_req zone=one;
         #limit_req zone=one burst=3 nodelay;
        }

        location / {
            root   html;
            index  index.html index.htm;
            limit_req zone=one;
            #limit_req zone=one burst=3 nodelay;
            #limit_conn con_zone 1; 
            #limit_conn perserver 2000;
        }

如上我对 / 做了请求限制,经过我的测试疯狂访问 ip/ 时确实限制了请求,但是当我访问ip/mystatus路径时没有起到作用,按理说/mystatus也在/路径下应该也会做到限制,这就涉及到location 的一个匹配问题 详情看location指令。所有我们访问ip/mystatus是一个精确匹配,不会走下面的一个配置而是走的上面一个配置。所有没有产生效果。

如果使用limit_req zone=one burst=3 nodelay 这段配置   ,如果超过了rate这个速率 ,burst=3 此处配置表示为,设置一个大小为3的缓冲区,当有大量请求(爆发)过来时,访问超过了上面的限制可以先放到缓冲区内。意思3个请求将被放到缓冲区,而不是直接丢弃。

 


2.连接模块 limit_conn_zone

通俗的来讲就是限制每个用户连接到服务器的数量。而连接和请求的区别:连接这里涉及到tcp三次握手,握手成功好那么就会建立一个连接。在一次连接中,至少得有一次请求,意思说一次连接可以发送多次请求。

连接模块

 定义连接模块变量:limit_conn_zone  $binary_remote_addr  zone=con_zone:10m;

然后再localtion中添加如下配置即可

limit_conn con_zone 1;   限制某个ip的连接数量
limit_conn perserver 2000;   限制服务器最大连接数量

 

 

除了limit_conn perserver 2000;以上配置都是针对的某个ip进行限制而不是全局进行一个请求限制

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值