nginx 根据ip设置访问频率限制
#根据ip地址返回0,1,2等 本例0为白名单 上下文 http
geo $rule_list {
default 1;
127.0.0.1 1;
112.81.16.62 0;
#include ip文件
}
#如果不在条件之内返回二进制地址 上下文 http
map $rule_list $limit {
1 $binary_remote_addr;
0 "";
}
例如 $remote_addr为127.0.0.1 $var等于1 否则返回默认值0
map $remote_addr $var{
default 0;
''127.0.0.1'' 1;
}
#每秒一次请求 如果返回"" 速率限制会失效
limit_req_zone $limit zone=test:10m rate=1r/s; #$limit为binary_remote_addr时有限制 为空字符串无限制
在location中 limit_req zone=test;