1.先在window主机上进行测试。
(1)在nginx官网下载版本1.24版本的nginx。
nginx官网地址
查阅了资料,nginx在1.19版本增加了 tcp协议的负载均衡的支持,因此需要使用1.19及以上的版本实现。
(2)nginx 配置文件增加如下的内容。
stream {
#日志配置(不配置的话是没有日志记录的)
log_format proxy '$remote_addr $remote_port - [$time_local] $status $protocol ' '"$upstream_addr" "$upstream_bytes_sent" "$upstream_connect_time"' ;
access_log logs/proxy.log proxy;
upstream tcp_server{
#宿主机的IP(TCP服务端,使用tcp助手创建)
server 127.0.0.1:8000 max_fails=1 fail_timeout=2s; #主节点
server 172.22.1.192:8000 backup; #备节点
}
server{
listen 9000;
proxy_pass tcp_server;
}
}
以上代码需要stream模块的支持,在window上版本是带有该模块的,在linux 安装linux是需要注意增加stream模块
在windows上经过验证客户端的tcp链接可以成功链接到后端的tcp服务器上。
关闭主服务器上tcpserver,客户端可以自动切换备用服务器。
以上的配置,当主服务器存活,客户端的链接只会到达主服务器上,不回向备用服务器链接。
当客户端已经链接了备用服务器,主服务器业务恢复,已建立的链接不会自动回到主服务器。
只有当客户端重连,才会链接到主服务器。