称之为反向代理也只要是感觉结构上和Nginx-Tomcat反向代理集群比较像而已,非官方哦~
附上脚本地址,加在最后面http://blog.itpub.net/29510932/viewspace-1166603/
-------------------------------------------------------------------------------------------------正文---------------------------------------------------------------------------------------------------------------
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
-------------------------------------------------------------------------------------------------用途---------------------------------------------------------------------------------------------------------------
说起用途的话,可以考虑利用Nginx作为中间件来搭建双主多从的HA集群,然后写一个脚本来监控从库的状态来实时切换Nginx,屏蔽down机主库对应的从库或者是down掉的从库,
之后再上5.7, 利用多主模式来横向扩展MySQL集群的写入能力,同时监控从库的脚本也可以省略点逻辑,不用去判断对应的主库是否失败。
做出两套方案以后,再去验证实际的可用性,性能什么的...近期的计划差不多就做好了~