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 限制了并发连接数,于是也就限制了总带宽。

原文地址:https://www.cnblogs.com/fjping0606/p/8206766.html