限制并发数

在nginx的配置文件中添加如下配置:

1
2
3
4
5
6
7
8
9
10
11
http{
limit_conn_zone $binary_remote_addr zone=one:10m;
...
service{
...
location xxx{
limit_conn one 1;
...
}
}
}

20220110133505
这里设置的并发数为 1,表示同一个ip的并发访问数为1 配置好后,重启nginx即可。

限制访问速度

在nginx配置文件中添加如下配置:

1
2
3
4
location xxx {
limit_rate 100k;
...
}

20220110133605
重启nginx后,可以发现下载速度,确实被限制在 100k/s 左右
20220110133620

扩展

这里介绍的是对单个ip进行访问限制,如果说想对总的访问进行限制,可以尝试使用如下方式:

通过nginx的请求转发功能,将所有的请求转发到另外一个端口,而后直接对图示中8889端口进行如上的限制即可
20220110133657

配置入下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
...
limit_conn_zone $binary_remote_addr zone=one:10m;
server {
listen 8888;
server_name localhost;
...
location ~/grouptest/M0[0-9] {
proxy_pass http://<本机ip>:8889;
}
}

server {
listen 8889;
server_name localhost;
location xxx {
limit_conn one 1;
...
}
}
...