环境说明
以下是我的实验环境情况,可根据自己情况选择自己熟悉的Ubuntu、Centos、Linux等系统做实验都可以
虚拟机1(系统: Ubuntu;IP: 192.168.91.131):已安装nginx v1.23.0
虚拟机2(系统: Centos;IP: 192.168.91.132):已安装mysql
虚拟机3(系统: Centos;IP: 192.168.91.133):已安装mysql
实验架构图说明
![](https://i-blog.csdnimg.cn/blog_migrate/e0ed44ce0d592d3df184b8cd2db7dab8.png)
环境安装
虚拟机1安装nginx环境准备
ssh到虚拟机1
ssh root@192.168.91.131
下载nginx1.23.0压缩包并解压
wget https://nginx.org/download/nginx-1.23.0.tar.gz
tar zxvf nginx-1.23.0.tar.gz
编译并安装nginx
cd nginx-1.23.0
./configure --prefix=/user/local/nginx --with-stream
make
make install
重启nginx
/user/local/nginx/sbin/nginx -s reload
虚拟机2和虚拟机3安装mysql准备
Centos7.9安装mysql步骤参考:https://juejin.cn/post/7208741162521542712
配置nginx代理mysql集群
更新 `/usr/local/nginx/nginx.conf` 文件,配置内容如下
注意: stream 和 http 同级
stream {
upstream mysql {
server 192.168.91.132:3306;
server 192.168.91.133:3306;
}
server {
listen 3306;
proxy_pass mysql;
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/2bcf37fc0d194259272730892098fede.png)
重启nginx
# 测试nginx配置是否正确
/usr/local/nginx/sbin/nginx -t
# 重启nginx
/usr/local/nginx/sbin/nginx -s reload
通过虚拟机1的nginx代理访问mysql集群
mysql -uroot -p -h 192.168.91.131
如下图所示正常连接到集群
![](https://i-blog.csdnimg.cn/blog_migrate/815a4a392b2496b8707645d48192ed29.png)
参考
https://guo365.github.io/study/nginx.org/en/docs/stream/ngx_stream_core_module.html