如何在超过 2 台服务器的主动/被动模式下进行 tcp 负载平衡?

Posted

技术标签:

【中文标题】如何在超过 2 台服务器的主动/被动模式下进行 tcp 负载平衡?【英文标题】:How to do tcp load balancing in active/passive mode with more than 2 servers? 【发布时间】:2018-06-27 05:04:09 【问题描述】:

在我的用例中,我需要设置负载平衡器,它可以是 nginx 或类似的支持 TCP 负载平衡的东西,它将连接到我的后端服务。

我想以主动/被动的方式做到这一点。我可以在 docker env 上拥有 5 个负载均衡器实例和 5 个后端服务实例,比如说 NFS(可能不在 docker env 上)。

现在我希望我的 lb1(负载平衡器 1)仅将请求路由到 nfs1,除非它关闭,然后将请求路由到 nfs2 或 nfs3,依此类推。

lb1 ----- nfs1
lb2 ----- nfs2
:
:
lb5 ----- nfs5

我已经用 nginx 试过了,但是它只支持 2 个带备份关键字的主动/被动模式的服务器。

    events 
    worker_connections  1024;
  

   stream 
    upstream stream_backend 
        server 172.17.0.5:2049;
        server 172.17.0.7:2049 backup;
    

    server 
        listen 80;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass stream_backend;
    

任何帮助都会很棒。

【问题讨论】:

【参考方案1】:

通过使用 Haproxy 能够解决我的问题。

defaults
    mode tcp

frontend haproxy
    bind *:80
    mode tcp
    timeout client  1s
    default_backend nfs


backend nfs
    mode tcp
    timeout connect 1s
    timeout server 1s
    server nfs1 172.17.0.7:2049 check
    server nfs2 172.17.0.5:2049 check backup
    server nfs3 172.17.0.8:2049 check backup

学分:https://www.haproxy.com/blog/failover-and-worst-case-management-with-haproxy/

【讨论】:

你能用这个执行nfs挂载吗?

以上是关于如何在超过 2 台服务器的主动/被动模式下进行 tcp 负载平衡?的主要内容,如果未能解决你的问题,请参考以下文章

FTP主动模式和被动模式!

主动模式FTP与被动模式FTP该如何选择

如何设置FTP的主动模式和被动模式

主动模式和被动模式,添加监控主机,添加自定义模板,处理图像中的乱码,自动发现

如何设置FTP的主动模式和被动模式

FTP服务的主动模式和被动模式