/ 中存储网

使用Nginx实现MySQL数据库的负载均衡功能

2013-09-22 15:03:01 来源:itjs.cn

Nginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司的的负载均衡都是nginx所以决定研究一下nginx的这个功能实现,下面简单介绍一下实现方法:

1.下载module模块

下载地址 : https://nodeload.github.com/yaoweibin/nginx_tcp_proxy_module/zipball/master

$ wget 'http://nginx.org/download/nginx-1.2.1.tar.gz'

$ tar -xzvf nginx-1.2.1.tar.gz

$ cd nginx-1.2.1/

$ patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch  /path是指nginx_tcp_proxy_module路径

$  ./configure --add-module=/usr/local/ngx_cache_purge-1.4  --prefix=/usr/local/nginx --with-http_stub_status_module --add-module=/path/to/nginx_tcp_proxy_module   //编译

$ make

$ make install

2、修改nginx配置文件:

http {

server {

listen 80;

location /status {

check_status;

}

}

}

tcp {

upstream mysql{

server 10.10.10.17:3306 weight=1;

server 10.10.10.18:3306 weight=1;

#check interval=3000 rise=2 fall=5 timeout=1000;

}

server {

listen 3306;

proxy_pass mysql;

}

}

这样就完成了配置,启动nginx进行测试,下面是测试中打印的log:

2012/09/08 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:31 10.10.10.18:3306 1446 4383

2012/09/08 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:32 10.10.10.17:3306 1446 4383

2012/09/08 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:32 10.10.10.18:3306 1447 4383

2012/09/08 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:33 10.10.10.17:3306 1445 4383

2012/09/08 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:33 10.10.10.18:3306 1445 4383

2012/09/08 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:34 10.10.10.17:3306 1446 4383

2012/09/08 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:34 10.10.10.18:3306 1445 4383

2012/09/08 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:35 10.10.10.17:3306 1445 4383

2012/09/08 18:22:36 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:35 10.10.10.18:3306 1445 4383

2012/09/08 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:36 10.10.10.17:3306 1446 4383

2012/09/08 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:37 10.10.10.18:3306 1446 4383

2012/09/08 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:37 10.10.10.17:3306 1445 4383

2012/09/08 18:22:38 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:37 10.10.10.18:3306 1444 4383

2012/09/08 18:22:39 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/08 18:22:38 10.10.10.17:3306 1445 4383