使用场景
一般用于dns或者已经做好主从同步的mysql服务器的转发,做负载均衡的工作。
安装stream模块
stream模块一般用于tcp/UDP数据流的代理和负载均衡,可以通过stream模块代理转发TCP消息。 ngx_stream_core_module模块由1.9.0版提供。 默认情况下,没有构建此模块。
第一种安装方法: -必须使用-with stream配置参数启用。这个对于初学者来讲稍微有些麻烦
第二种安装方法:
首先使用yum -y install epel-release nginx 安装 nginx模块
然后查找nginx的模块,如下图
找到stream模块,进行安装
安装完毕。
配置nginx的转发模块
nginx需要配置一个stream的段(segment),就是刚才安装的这个模块的自带的指令(directive),注意这个stream和http段是并列的,要写在/etc/nginx/nginx.conf的最后。
最后的include是要是将conf.d中的stream文件作为配置的一部分。
我们将有mysql服务器的地址192.168.10.240 作为要转发的机器,配置如下:
使用 systemctl reload nginx 重新启动nginx
也可以使用systemctl restart nginx启动
如果启动不了,可以使用nginx -t测试下配置文件是否有错,如果有错误的话,会有提示。
重启服务器以后,看状态
看到nginx已经侦听了3306端口。这个就是7层转发的特点。
转发测试
我们先到240上看看机器名称
机器名称是slave1
我们在nginx机器上登录,nginx的机器名称是hy
我们看到已经成功到slave1上去了。
配置负载均衡
配置负载均衡,对于mysql来说,所有的被转发的服务器必须先已经做好了同步才可,否则数据有不对。
配置很简单,就是增加upstream模块,二台服务器轮询
重新启动
可以看到在轮询,只不过一台机器是不能登录而已。