NGINX - 限制请求以防止滥用

NGINX - 限制请求以防止滥用

我之所以要这样做,是因为用户使用 JavaScript 针对我们的 API 进行开发,而有些开发人员搞砸了,导致访问者使用 AJAX 请求冲击服务器。当这种情况发生时,我希望能够限制 API 请求,以便每分钟 50 个请求或类似这样的内容。

笔记:(特别是 DB 密集型资源,因此可能在路径级别,而不是服务器范围(例如,限制“/json_api/”,而不是“/static/”)。

答案1

这可以使用限制请求模块使用 Nginx。但是,如果这是反向代理,您可能想尝试新的HAProxy 支持的速率限制

我发现 nginx 速率限制是一个有点令人困惑即可获得您想要的准确汇率。

但你基本上有类似的东西:

limit_req_zone  $binary_remote_addr  zone=default:10m   rate=50r/m;

在部分中,然后在部分内的部分http中输入类似以下内容:locationserver

limit_req zone=default burst=10 nodelay;

为了不让它属于某个部分,就像/static您只需要将其单独化location并且不将其包含在limit_req指令中(或相反)。

相关内容