如何限制 Nginx 每秒最多发送 50 个请求(与 IP 无关)

如何限制 Nginx 每秒最多发送 50 个请求(与 IP 无关)

我正在寻找一种方法来限制 Nginx 每秒的定位请求数独立的原始 IP。据我所知,速率限制功能是 IP 敏感的,无法关闭。

这里正确的方法是什么?

答案1

就像这样

limit_req_zone global zone=global_limit:1k rate=50/s;

global部分是 Nginx 用于存储请求的密钥。通过将其设置为静态字符串(可以是任何内容)而不是变量,所有请求都将进入同一个存储桶。

要按 IP 进行限制,您可以将其设置为$binary_remote_addr。您可以对几乎任何内容进行评级限制(请参阅https://www.nginx.com/blog/dynamic-bandwidth-limits-nginx-plus-key-value-store/#Complete-Sample-NGINX-Configuratio(对于复杂的例子)

相关内容