Nginx 限制访问速率

Posted 陌上归人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 限制访问速率相关的知识,希望对你有一定的参考价值。

本文测试的nginx版本为
nginx version: nginx/1.12.2

Nginx 提供了 limit_rate 和limit_rate_after,举个例子来说明一下
在需要限速的站点 server 域中添加一下代码
location / {
  limit_rate_after 500k;
  limit_rate 50k;
}

大概意思是:假如用户下载某个大文件,下载量达到 500k 后,便控制其速度在 50k 以内。
此控制是针对单个连接而言的。换言之,只能限制单个连接的带宽,不能限制总带宽。不过使用 limit_conn 模块的话,可以在一定程度上缓解问题
在nginx.conf的 http 域中先添加以下代码
limit_conn_zone $server_name zone=servers:10m;
然后修改 server 域中代码
server {
  location / {
    limit_conn servers 1000;
    limit_rate_after 500k;
    limit_rate 50k;
  }
}

通过 limit_conn 限制了并发连接数,于是也就限制了总带宽。

 


















以上是关于Nginx 限制访问速率的主要内容,如果未能解决你的问题,请参考以下文章

nginx配置limit_req限制ip访问速率详解

Nginx限制访问次数和并发数

Instagram 速率限制

nginx 怎么限制访问

一文搞懂Nginx限流,原来这么简单

nginx lua redis 访问频率限制(转)