Nginx 限制全局请求

use*_*046 6 nginx

我搜索了整个网站和谷歌,但找不到我要找的东西。

目前我知道我们可以限制请求/IP,例如

limit_req_zone $binary_remote_addr zone=one:30m rate=20r/s;

我们可以在我们想要的任何位置使用

limit_req zone=one burst=10 nodelay;

我的问题是。如何同时限制所有 ip 的全局请求?简而言之,我有一个 PHP-FPM 位置,无论如何我都希望所有请求不超过 200 个请求/秒。

我想我们必须替换 $binary_remote_addr,但我不知道是什么。

Mic*_*ton 9

编造一些东西,这是独一无二的,不会与其他任何东西相匹配。

该字段 inlimit_req_zone只是一个键,它用作在指定的zone. 如果您有一个静态键,那么所有查找都将匹配相同,并且该区域的限制将是有效的全局限制。

例如:

limit_req_zone global zone=my_php_location_to_limit:1k rate=200/s;
Run Code Online (Sandbox Code Playgroud)

在这里,global没有语义意义。这只是一段随机的文本。它可以是anythingorsomethingnothing

  • 啊! 我真是太笨了 现在我注意到了。您还创建了 1k 区域,因为密钥是静态的,因此不会超过 1k? (2认同)