nginx对ip限流的操作

一.背景

  我们经常遇到这种情况,客户使用生产环境进行了压力测试,大量的请求,导致其他客户的请求未能响应。

  服务器资源有限,但是客户端来的请求在不断的上涨, 为了保证一部分的请求能够正常相应, 不得不放弃一些客户端来的请求, 这个时候我们会选择行的进行一些NGINX的限流操作, 这种操作可以很大程度上缓解服务器的压力, 使其他正常的请求能够得到正常响应.


二.使用nginx模块

  •   1. ngx_http_limit_conn_module模块

     说明:此模块用来限制单IP的连接数

     配置方式:

     1.在nginx配置文件中的http配置模块添加: limit_conn_zone key zone=name:size;

         说明:开辟一个内存空间,为不同的key值保存状态,状态属性里面有当前来的连接数。key可以为变量,这里的key为$binary_remote_addr,即远程服务器的地址。name为该空间的命名,size为大小。

         PS:  64位系统上,$binary_remote_addr存储占用64 bytes内存空间,状态存储占用64bytes内存空间,1M的size能存8192个不同$binary_remote_addr的状态。

      2. 再在http->server->location配置模块中添加:limit_conn zone number;

          说明:在当前location下,命名为zonekey值对应的连接数不能超过number,如果超过了,就会返回503错误

     配置实例:

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值