在我的用例中,我需要设置负载均衡器,该负载均衡器可以是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;
}
}
任何帮助都会很棒。
答案 0 :(得分:0)
使用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/