【问题标题】:Nginx: Limit number of simultaneous connections per IP to backendNginx:限制每个 IP 到后端的同时连接数
【发布时间】:2013-07-08 21:00:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: nginx


    【解决方案1】:

    你可能想设置

    proxy_ignore_client_abort off;
    

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

    来自documentation

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

    【讨论】:

    • Nginx 开发团队建议也使用proxy_ignore_client_abort off。到目前为止它有效。
    【解决方案2】:

    恐怕这个功能还不能用于开箱即用的 nginx。根据Nginx FAQ

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多