nginx实现mysql 负载均衡的实例分享

发布时间:2020-03-19编辑:脚本学堂
本文介绍下,在nginx中借助nginx_tcp_proxy_module模块,实现mysql负载均衡的一个例子,有需要的朋友,参考下吧。

这里首先要说明的是:
nginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。
所以不能代理mysql等实现负载均衡。

以下介绍的实现方法,需要借助nginx的模块nginx_tcp_proxy_module来实现。

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信息如下:
 

2013/8/26 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:31 10.10.10.18:3306 1446 4383
2013/8/26 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:32 10.10.10.17:3306 1446 4383
2013/8/26 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:32 10.10.10.18:3306 1447 4383
2013/8/26 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:33 10.10.10.17:3306 1445 4383
2013/8/26 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:33 10.10.10.18:3306 1445 4383
2013/8/26 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:34 10.10.10.17:3306 1446 4383
2013/8/26 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:34 10.10.10.18:3306 1445 4383
2013/8/26 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:35 10.10.10.17:3306 1445 4383
2013/8/26 18:22:36 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:35 10.10.10.18:3306 1445 4383
2013/8/26 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:36 10.10.10.17:3306 1446 4383
2013/8/26 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:37 10.10.10.18:3306 1446 4383
2013/8/26 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:37 10.10.10.17:3306 1445 4383
2013/8/26 18:22:38 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:37 10.10.10.18:3306 1444 4383
2013/8/26 18:22:39 [3921] 10.10.10.107 0.0.0.0:3306 2013/8/26 18:22:38 10.10.10.17:3306 1445 4383