使用nginx配置mysql负载均衡

这段时间初步了解了一点nginx,主要时因为在公司上班我老大要我配置使用,果然工作还是非常有助于学习的。

关于nginx的安装我就不多说了,网上一搜一大把

需要注意的是,nginx在1.9版本之前是只能配置http协议的,不接受tcp协议的代理,所以nginx最常见的功能是服务器的负载均衡配置,大致流程如下:

以TONCAT 的web服务器举例:

Nginx的作用主要就是分发请求,减少单个Tomcat的压力,从而达到提高服务器承载请求的能力(也就是能够处理高并发的情况服务器不会瘫痪)

 

使用Nginx配置mysql负载均衡与上述差不多,只不过TOMCAT将不再连接同一个数据库服务器,而是连接nginx,nginx分发请求给不同的数据库服务器。

需要注意的是,这种情况下,我为了保证TOMCAT拿到的数据是正确的,需要保证不同数据库之间的数据是同步的,我这次应用中使用的是mysql自带的同步功能,设置为主主同步(实际上就是多个主从同步),这里暂时不做过多介绍,我将另起一篇博文介绍mysql的主主同步配置

配置了mysql负载均衡后的拓扑图大致如下:

mysql负载均衡的配置也是十分简单:

在nginx.conf文本最后一行添加下述代码即可:

stream {
    server {
       listen 3306;
       proxy_pass db;    
    }
    upstream db {
       server 192.168.18.130:3305;
       server 192.168.18.129:3305;
    }

}

需要说明的是,上述配置中监听了3306端口,即3306端口将被nginx占用,而mysql的默认使用端口为3306,这将导致mysql无法启动,所以需要将mysql的端口号改为其他端口(本文中将其设置成3305,这将会在mysq主主同步的博文中说明),proxy_pass即为代理地址,关于nginx的优化还有许多内容,在日后的学习中将会逐步更新

 

代码需要在nginx1.9版本以上才支持,如果时1.9版本以下,加载配置文件时会报错说无法识别stream。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值