Nginx限制连接控制访问量

一:限制连接数模块(同时访问网址能访问多少次)

1、创建一个内存空间存放访问者的IP
		
		2、设置每一个访问者的同时连接次数
1.修改网址模块文件
vim /etc/nginx/conf.d/game.conf

image

# 创建一个叫linux的空间,主要用来存放客户端ip,大小给10m
limit_conn_zone $remote_addr zone=linux:10m;                                                   
server {
    listen 80;
    server_name 192.168.15.7;

# 调用linux空间,限制连接数为1 
    limit_conn linux 1;
    location / {
        root /opt/jiaoben1765/jiaoben1765;
        index index.html;
    }
}
2.测试
nginx -t
3.重启
systemctl restart nginx
4.增加解析ip
[root@web01 ~]# vim /etc/hosts

image

	借助工具访问网址
	知识储备:
	
		1、安装ab测试命令
	yum install httpd-tools -y 

	2、ab 参数
		-n : 总共需要访问多少次
		-c : 每次访问多少个

5.压力测试
1.200个并发同时访问一万次
2.命令行没办法解析网址
ab -n 100000 -c 200 http://192.168.15.7/

image

二:控制Nginx访问量

1.连接池
limit_req_zone $remote_addr zone=one:10m rate=1r/s;
		声明连接池       变量          名称  连接池的大小  速率
2、限制数
  • 案例1:要求每秒只能有一个访问
修改网址模块文件
[root@web01 conf.d]# vim game5.conf

image

limit_req_zone $remote_addr zone=one:10m rate=1r/s;
server {
    listen 80;
    server_name 192.168.15.7;
    limit_req zone=one burst=5;
    location / {
        root /opt/Super_Marie;
	index index.html;
    }
}
3.测试
nginx
4.重启
systemctl restart nginx
5.压力测试
[root@web02 ~]# ab -n 100000 -c 1000 http://192.168.15.7/

image

posted @ 2022-01-04 20:02  AlexEvans  阅读(660)  评论(0编辑  收藏  举报