stream {
upstream readdb {
hash $remote_addr consistent; ---作为read库
server 125.208.14.177:3306 weight=5 max_fails=3 fail_timeout=30s;
server 125.208.14.177:3307 weight=4 max_fails=3 fail_timeout=30s;
}
server {
listen 12345;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass readdb;
}
upstream writedb{
hash $remote_addr consistent;
server 125.208.14.177:3308 max_fails=3 fail_timeout=30s; ---作为write库
}
server {
listen 23456;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass writedb;
}
}
~
个人感觉:这就是多个端口多个tcp代理而已,读的时候用一个端口,写的时候用一个端口,多麻烦啊,用来做读写分离还是差了点,负载均衡还是不错的,还是使用atlas真正意义上的读写分离吧。
最后可以将http负载与tcp负载写一起达到多重目的。
更多Nginx负载均衡配置相关教程见以下内容:
Linux下Nginx+Tomcat负载均衡和动静分离配置要点
CentOS环境下Nginx实现3台虚拟机负载均衡