一、nginx限流
1.控制单IP并发连接数
//$binary_remote_addr 表示通过remote_addr这个标识来做限制
//zone=addr:10m 表示生成一个大小为10M,名字为addr的内存区域
limit_conn addr 1; #限制并发数
limit_rate 50k; #限制带宽
[root@server1 conf]# vim nginx.conf
41 #gzip on;
42 limit_conn_zone $binary_remote_addr zone=addr:10m;
43 server {
44 listen 80;
45 server_name localhost;
52 location /download/ {
53 limit_conn addr 1; ##并发数为1
54 }
[root@server1 conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server1 conf]# nginx -s reload
在客户端:
ab -c1 -n10 http://172.25.52.1/download/vim.jpg ##并发1次,请求10次
ab -c10 -n10 http://172.25.52.1/download/vim.jpg ##进行压力测试,出错了
在server中查看日志:
[root@server1 ~]# cd /usr/local/nginx/logs
[root@server1 logs]# ls
access.log error.log nginx.pid nginx.pid.oldbin
[root@server1 logs]# cat access.log
2. 限制单位时间内的请求数目,以及速度限制
//rate=1r/s表示允许相同标识的客户端的访问频次,这里限制的是每秒1次
[root@server1 nginx]# cd conf/
[root@server1 conf]# vim nginx.conf