多台服务器上 Nginx max_conns 限制

多台服务器上 Nginx max_conns 限制

如果我在 Nginx 中有两个服务器块,并且它们都使用相同的上游定义。 在这种情况下,max_conns 限制将如何工作?

我假设两个服务器块的最大连接数和保持连接数均限制为 100。那么总的来说,以下服务器块的 max_conns 总数可以达到 200 个?

upstream example {
    server example.com:443 max_conns=100;
    keepalive 90;
}

 server {

            listen 1.1.1.1:80;
            server_name proxy.site.net;
            proxy_pass https://example
            proxy_bind 1.1.1.1 transparent;
 }
 
  server {

            listen 1.1.1.2:80;
            server_name proxy.site.net;
            proxy_pass https://example
            proxy_bind 1.1.1.2 transparent;
 }

我的源站限制每个 IP 最多可同时连接 100 个。因此,我通过为每个服务器块使用不同的 IP 来拆分流量。因此,我希望每个服务器块(或每个公共 IP)实现 100 个并发连接。我该怎么做?

拥有两个服务器块的目的是能够处理双倍数量的请求。

更新:

源是一个云提供商,它对“每个 IP 的连接数”设置了一些硬性限制,以避免过载。源表示每个 IP 地址最多可以有 100 个并发 HTTP 连接。如果同一个 IP 尝试建立连接号 101,源会抛出错误。因此,我想使用两个 IP 来同时建立 200 个到源的并发连接。如果您知道应该在我的代码中更改什么才能实现它,请帮忙。–

更新2:

下面是我使用的最新代码,通过在服务器的公共 IP 上使用 DNS 循环来实现每秒 200 个请求。

我有两个不同的 IP 在两个服务器块中监听,并​​且这些服务器块有两个不同的上游名称。

我现在假设,如果 100 个人在 DNS 循环中使用第一个 IP,而接下来的 100 个人使用第二个 IP,那么我将能够同时为 200 个人提供服务。尽管我的源站限制每个 IP 只能连接 100 个。

请告诉我该代码是否正确?

upstream example {
    server example.com:443 max_conns=100;
    keepalive 90;
}

upstream example2 {
    server example.com:443 max_conns=100;
    keepalive 90;
}

 server {

            listen 1.1.1.1:80;
            server_name proxy.site.net;
            proxy_pass https://example
            proxy_bind 1.1.1.1 transparent;
 }
 
  server {

            listen 1.1.1.2:80;
            server_name proxy.site.net;
            proxy_pass https://example2
            proxy_bind 1.1.1.2 transparent;
 }

相关内容