称之为反向代理也只要是感觉结构上和Nginx-Tomcat反向代理集群比较像而已,非官方哦~
附上脚本地址,加在最后面
----------------------------------------正文----------------------------------------
Nginx-1.9.7可以在官方下载,自带了TCP代理的模块,但是需要在编译的时候添加参数去明文指定才会编译进去
参考官方文档,编译时加上如下参数: --with-stream
然后make && make install完成编译安装(介绍nginx安装的资料很多,不再复述)
----------------------------------------配置&验证----------------------------------------
附上一份简单的配置文件
stream {
upstream mysql {
hash $remote_addr consistent;
server MySQL_URL:3306 max_fails=3 fail_timeout=30s;
}
server {
listen 13579;
proxy_connect_timeout 30s;
proxy_timeout 600s;
proxy_pass mysql;
}
}
启动以后看看端口的状态
和HTTP的反向代理不同的地方就在整个模块, 不再是http模块了,而是stream模块,里面的语法基本是一致的,在upstream里面, 可以看到依然可以利用Nginx的负载均衡策略,所以,Nginx-1.9.x成功加入MySQL中间件豪华午餐~
那么在其他的机器上试试通过网络远程访问这个端口来连接MySQL
可以看到通过这个13579的端口确实可以访问到MySQL
----------------------------------------分割线----------------------------------------
CentOS 6.2实战部署Nginx+MySQL+PHP
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
CentOS 6.3下配置Nginx加载ngx_pagespeed模块
CentOS 6.4安装配置Nginx+Pcre+php-fpm
----------------------------------------用途----------------------------------------
说起用途的话,可以考虑利用Nginx作为中间件来搭建双主多从的HA集群,然后写一个脚本来监控从库的状态来实时切换Nginx,屏蔽down机主库对应的从库或者是down掉的从库, 之后再上5.7, 利用多主模式来横向扩展MySQL集群的写入能力,同时监控从库的脚本也可以省略点逻辑,不用去判断对应的主库是否失败。
做出两套方案以后,再去验证实际的可用性,性能什么的...近期的计划差不多就做好了~