nginx负载均衡数据库怎么做

nginx负载均衡数据库怎么做

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

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

以TONCAT 的web服务器举例:

nginx-4.png

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

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

需要注意的是,这种情况下,我为了保证TOMCAT拿到的数据是正确的,需要保证不同数据库之间的数据是同步的,我这次应用中使用的是mysql自带的同步功能,设置为主主同步(实际上就是多个主从同步)

nginx-5.png

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负载均衡数据库怎么做的详细内容,更多请关注其它相关文章!