3

我们尝试通过限制每秒请求数来节省 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 添加为每秒请求数限制的例外吗?

4

1 回答 1

7

是的你可以。只是来自文档的引用:

键是指定变量的任何非空值(不考虑空值)。

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

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;
于 2013-10-30T14:27:13.410 回答