Nginx将所有连接发送到服务器A,然后再发送到服务器B,然后再发送到服务器c,等等



我使用nginx来平衡使用流指令到后端tcp服务器的连接。关于平衡连接,我有两个单独的问题,因为默认算法似乎不够好。

  • 是否有可能以一种方式进行负载平衡,即在移动到服务器B之前先将服务器a上的连接最大化。一旦B达到最大值,则移动到服务器C?

  • 是否有可能以一种方式将前50个连接发送到服务器a,然后将下50个连接发送到服务器B。一旦服务器a和服务器B都达到50个连接,在一个循环中再次为服务器a和服务器B重复该过程,直到两者都达到最大负载?

    上游tcpServerSocket {服务器127.0.0.1:9091;服务器127.0.0.1:9092;}

    服务器{服务器9090;proxy_pass tcpServerSocket;}

目前我正在使用轮询的算法选择,这对我的用例来说不是很好。这些是websockets,如果有帮助的话。

你可以按照Nginx文档中的描述配置哈希负载平衡方法:https://nginx.org/en/docs/http/ngx_http_upstream_module.html#hash

要与Websocket一起使用,您可以尝试实现本要点中共享的示例:https://gist.github.com/gihad/25b3c87f35b20b3d3bb6ad589ea42974

相关内容

最新更新