可以通过nginx的limit_req zone模块限流,在nginx的主配置文件nginx.conf中新增配置:
geo $limit {
default 1;
127.0.0.1 0;
192.168.1.0/24 0;
}
map $limit $limit_key {
0 "";
1 $proxy_add_x_forwarded_for;
}
limit_req_zone $limit_key zone=one:10m rate=20r/s;
$proxy_add_x_forwarded_for,是限制同一客户端ip地址。
zone=one:10m表示生成一个大小为10M,名字为one的内存区域,用来存储访问的频次信息。
rate=20r/s表示允许相同标识的客户端的访问频次,这里限制的是每分钟20次。
在location下增加配置如下:
location / {
proxy_pass http://aaa;
limit_req zone=one burst=500 nodelay; #新增配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Connection "Upgrade";
}
reload重新加载配置
nginx -s reload
标签:set,zone,header,nginx,limit,proxy,速率,客户端 From: https://www.cnblogs.com/fighting-ljy/p/17171093.html