Linux下nginx服务的配置文件nginx.conf中模块的讲解之配置limit_conn_zone来限制并发连接数以及下载速率

续我的上篇博文:https://mp.csdn.net/postedit/89512198即本篇博文是在上篇博文修改完之后的nginx.conf文件中进行修改的。

一、限制并发连接数的配置方法如下:

1、在nginx.conf里的http{}里加上如下代码:

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf   #在其中的36行加入下面的内容(在http{}模块中加入的)
 36     limit_conn_zone $binary_remote_addr zone=addr:10m;



#解释内容如下:
要限制连接,必须先有一个容器对连接进行计数,在http段加入如下代码:

"zone=" 给它一个名字,可以随便叫,这个名字要跟下面的 limit_conn 一致
$binary_remote_addr = 用二进制来储存客户端的地址,1m 可以储存 32000 个并发会话。 $binary_remote_addr是限制同一客户端ip地址;

2、在需要限制并发数的网站配置server{}里加上如下代码:

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf   #在其中的49-51行加入下面的location模块(在server{}模块中加入的)
 49         location /download/ {   #结合配置文件中server{}中的定义,我们可以知道,该location模块表示:在访问http://localhost/download/...内容(或者http://172.25.83.1/...内容)时,进行并发数为1的限制
 50                 limit_conn addr 1;   #限制每个IP只能发起1个连接(addr 要跟 limit_conn_zone 的变量对应)
 51         }



#参数解释:
limit_conn为限制并发连接数;

3、修改完配置文件nginx.conf之后,重新加载nginx服务

[root@server1 ~]# /usr/local/nginx/sbin/nginx -s reload

4、进行测试:

[root@server1 ~]# cd /usr/local/nginx/html/
[root@server1 html]# ls
50x.html  index.html
[root@server1 html]# mkdir download   #在nginx的默认发布目录中创建download目录,并在网上随意下载图片到该目录中(我这里下载的是vim.jpg)
[root@server1 download]# ls
vim.jpg



#在物理机上进行访问的测试:
[root@foundation83 Desktop]# ab -c 10 -n 10 http://172.25.83.1/download/vim.jpg   
Complete requests:      10
Failed requests:        8   #10次并发,10次访问。我们发现有8次是失败的。(这个不太准确)
[root@foundation83 Desktop]# ab -c 1 -n 10 http://172.25.83.1/download/vim.jpg   
Complete requests:      10
Failed requests:        0   #1次并发,10次访问。我们发现有0次是失败的。(这个准确)
Time taken for tests:   0.012 seconds
Transfer rate:          362132.48 [Kbytes/sec] received

二、限制下载速率的配置方法如下:

1、在需要限制下载速率的网站配置server{}里加上如下代码:

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf   #在下面的location模块中加入第53行的内容
 51         location /download/ {
 52                 limit_conn addr 1;
 53                 limit_rate 50k;   //是对每个连接限速50k。这里是对连接限速,而不是对IP限速!如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate * 2
 54         }

2、在需要限制并发数的网站配置server{}里加上如下代码:

[root@server1 ~]# /usr/local/nginx/sbin/nginx -s reload

3、进行测试:

#在物理机上进行访问的测试:
[root@foundation83 Desktop]# ab -c 1 -n 10 http://172.25.83.1/download/vim.jpg
Time taken for tests:   79.174 seconds
Complete requests:      10
Failed requests:        0
Transfer rate:          55.98 [Kbytes/sec] received   #我们可以看到速率在50k左右

猜你喜欢

转载自blog.csdn.net/qq_42303254/article/details/89515598