我们尝试通过限制每秒的请求数来保存nginx资源:
http {
limit_req_zone $binary_remote_addr zone=gulag:10m rate=2r/s;
server
{
location / {
proxy_pass http://0.0.0.0:8181;
limit_req zone=gulag burst=40;
}
}
}
但是,我们公司的大多数员工也是我们网站的重度用户。由于公司中的每个人似乎都来自同一个IP地址,因此获得了503个错误,因为nginx认为所有流量都来自一个用户。我们可以将ip添加为每秒请求限制的例外吗?
答案 0 :(得分:6)
是的,你可以。只需引用the documentation:
键是指定变量的任何非空值(空值不计算)。
geo $limited_net {
default 1;
10.1.0.0/16 0;
}
map $limited_net $addr_to_limit {
0 "";
1 $binary_remote_addr;
}
limit_req_zone $addr_to_limit zone=gulag:10m rate=2r/s;