你可以为nginx的每秒请求限制设置一个例外吗?

And*_*oos 2 nginx request limit

我们尝试通过限制每秒的请求数来保存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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我们公司的大多数员工也是我们网站的重度用户.由于公司中的每个人似乎都来自同一个IP地址,因此获得了503个错误,因为nginx认为所有流量都来自一个用户.我们可以将ip添加为每秒请求限制的例外吗?

VBa*_*art 6

是的你可以.只是引用文档:

键是指定变量的任何非空值(不计算空值).

所以你可以通过使用这样的地理地图模块来实现你的目标:

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;
Run Code Online (Sandbox Code Playgroud)