NGINX – 节stream请求,以防止滥用

我想这样做的原因是因为用户使用JavaScript来开发我们的API,一些开发者搞砸了,导致访问者通过AJAX请求来closures服务器。 发生这种情况时,我希望能够将API请求限制为每分钟50个请求 ,或者是这种情况。

注意:(尤其是DB密集型资源,或许在path级别,而不是服务器范围内(例如:“/ json_api /”,而不是“/ static /”)。

这可以使用Nginx的LimitReqModule来完成。 但是,如果这是一个反向代理,你可能想试试HAProxy支持的新速率限制 。

我发现nginx的速率限制是有点混乱得到你想要的确切速度。

但你基本上有这样的东西:

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

http部分中,然后在server部分的location部分中显示以下内容:

 limit_req zone=default burst=10 nodelay; 

为了不像/static的某个部分,你可以把它作为一个单独的location ,不包括limit_req指令(或limit_req )。