Nginx能够实现HTTP、HTTPS协议的负载均衡,这是众所周知的,在nginx1.90版本之前,Nginx 并不支持tcp协议,所以后台的一些基于TCP的业务就只能通过其他高可用负载软件来完成了,比如Haproxy。这算是一个nginx比较明显的缺憾。不过在nginx-1.9.0 之后的版本中,增加了 stream 模块用于一般的 TCP 代理和负载均衡。即也能够实现TCP协议的负载均衡。Stream模块但是并不会默认安装,需要在编译时通过指定 --with-stream 参数来激活这个模块。
nginx需要stream模块插件来实现,nginx的使用四层tcp协议的转发。
nginx : TCP代理和负载均衡的stream模块 - 邱明成 - 博客园
总结:使用nginx的stream模块实现tcp协议的通信,进而实现负载均衡。
我们将使用nginx的stream实现mysql的负载均衡。使用Nginx实现MySQL数据库的负载均衡,前提是要搭建MySQL的主主复制环境。
在192.168.152.138 上搭建nginx;
在192.168.152.136和192.168.152.140上搭建mysql数据库,实现主主复制。

192.168.152.138 3306 访问的就是192.168.152.136和192.168.152.140上的mysql
MySQL查看实时执行的SQL语句 - 腾讯云开发者社区-腾讯云
https://www.51cto.com/article/621343.html
将192.168.152.136和192.168.152.140上搭建mysql数据库启动起来,确保实现主主复制。测试在从机器140上mysql数据表中tb_user中新增一条数据:tw .....

在主机器136上进行查看,可以看到实现同步着。

192.168.152.136和192.168.152.140两台机器上的mysql的主主同步没有问题。
Nginx安装参考:linux同一台机器安装两台nginx_健康平安的活着的博客-CSDN博客_linux安装两个nginx
1.安装nginx参考上面的连接地址,先进行安装nginx的依赖包等步骤,等到安装nginx软件包这一步骤的时候,按照如下进行安装,首先进入到软件包存放的目录:进入目录进行编译添加stream模块 /root/bigdata-software/nginxOfflinePack

2.解压nginx的软件包:
| [root@192 nginxOfflinePack]# tar -zxvf nginx-1.16.0.tar.gz [root@192 nginxOfflinePack]# cd nginx-1.16.0/ |
3.把需要的参数带上,添加stream的编译
| [root@192 nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-pcre=/root/bigdata-software/nginxOfflinePack/pcre-8.43 --with-zlib=/root/bigdata-software/nginxOfflinePack/zlib-1.2.11 --with-openssl=/root/bigdata-software/nginxOfflinePack/openssl-1.0.2r --with-http_ssl_module --with-stream |
4.执行make(切忌不要输入make install,否则会覆盖掉nginx文件