6

我们使用带有应用程序服务器的 nginx 作为后端。

我们需要限制每个 IP 到后端的同时连接数。limit_conn为此,我们使用了 nginx 指令。但它并不适用于所有情况。如果用户从一个 IP 生成了很多连接并快速关闭它们,那么 nginx 会将此请求传递给后端,但由于客户端连接已经关闭,因此此连接不计入limit_conn

是否可以使用 nginx 限制每个 IP 到后端服务器的同时连接数?

4

2 回答 2

4

您可能想要设置

proxy_ignore_client_abort off;

如果客户端在不等待响应的情况下关闭连接,则确定是否应关闭与代理服务器的连接。

文档

另一个建议是用来limit_req限制请求率。

于 2013-07-08T10:29:55.893 回答
0

恐怕这个功能还不能用于开箱即用的 nginx。根据Nginx 常见问题解答

许多用户要求 Nginx 在负载均衡器中实现一项功能,以限制每个后端的请求数(通常为一个)。虽然计划对此提供支持,但值得一提的是,对此功能的需求源于被代理的应用程序的不当行为

我已经看到了nginx-limit-upstream 的一些 3rd 方模块,但我从未尝试过。

于 2013-07-08T13:00:51.123 回答