nginx屬於七層架構,支持的是http協議,本身對tcp協議沒有支持。所以不能代理mysql等實現負載均衡。但是lvs這個東西不熟悉,主要是公司的的負載均衡都是nginx所以決定研究一下nginx的這個功能實現,下面簡單介紹一下實現方法:
www.2cto.com
1.下載module模塊
下載地址 : http://up.2cto.com/2012/0908/20120908102658486.zip
$ 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;
}
} www.2cto.com
}
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/07 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:31 10.10.10.18:3306 1446 4383
2012/09/07 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:32 10.10.10.17:3306 1446 4383
2012/09/07 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:32 10.10.10.18:3306 1447 4383
2012/09/07 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:33 10.10.10.17:3306 1445 4383
2012/09/07 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:33 10.10.10.18:3306 1445 4383
2012/09/07 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:34 10.10.10.17:3306 1446 4383 www.2cto.com
2012/09/07 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:34 10.10.10.18:3306 1445 4383
2012/09/07 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:35 10.10.10.17:3306 1445 4383
2012/09/07 18:22:36 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:35 10.10.10.18:3306 1445 4383
2012/09/07 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:36 10.10.10.17:3306 1446 4383
2012/09/07 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:37 10.10.10.18:3306 1446 4383
2012/09/07 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:37 10.10.10.17:3306 1445 4383
2012/09/07 18:22:38 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:37 10.10.10.18:3306 1444 4383
2012/09/07 18:22:39 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:38 10.10.10.17:3306 1445 4383