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