限 时 特 惠: 本站每日持续稳定更新内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410

一般对外暴露的系统,在促销或者黑客攻击时会涌来大量的请求,为了保护系统不被瞬间到来的高并发流量给打垮, 就需要限流,文章主要介绍了nginx限流方案的实现,希望对大家有帮助~

nginx限流_限流了怎么恢复流量_限流到1mbps什么概念

通过查看nginx官方文档,归纳为三种nginx限流方式:

前两种只能对客户端(即单一ip限流)nginx限流,并且文档也很全,但是经过测试发现,还是无法达到官方文档所说的结果。

这里先简单的介绍一下前两种:

1.1 nginx配置

http{
 limit_conn_zone $binary_remote_addr zone=one:10m;
 server
 {
   ......
  limit_conn one 10;
  ......
 }
}

其中“ one 10”既可以放在层对整个有效,也可以放在中只对单独的有效。该配置表明:客户端的并发连接数只能是10个。

1.2结果

ab工具20并发去请求nginx,可以看到

: 20

: 9

(由于nginx配置中一个ip并发连接数为10,而结果中成功数为+1的原因未知;nginx的日志中也可以看到有9个请求返回503)

2.1 nginx配置

http{
 limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s;
 server
 {
   ......
  limit_req zone=req_one burst=120;
  ......
 }
}

其中“ zone= burst=120”既可以放在层对整个有效,也可以放在中只对单独的有效。

「rate=1r/s」的意思是每个地址每秒只能请求一次,也就是说令牌桶burst=120一共有120块令牌,并且每秒钟只新增1块令牌,120块令牌发完后nginx限流,多出来的请求就会返回503.。

限 时 特 惠: 本站每日持续稳定更新内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410