基于nginx四层负载均衡(tcp)代理mysql集群

  • nginx 1.9版本之前只支持7层负载,之后版本stream支持4层tcp负载
  • 本次实验后端为galera集群,实验中未列出集群部署方式
  • by newrain
# 安装nginx所需依赖
yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 下载nginx 源码包
wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar -zxvf nginx-1.9.9.tar.gz # 解压源码包
# 编译安装nginx
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-strea
m
make -j 2 && make install


编辑/usr/local/nginx/conf/nginx.conf,在最后一行添加如下
stream {
server {
listen 3305;
proxy_pass db;
}
upstream db {
server 10.3.131.22:3306;
server 10.3.131.23:3306;
server 10.3.131.24:3306;
server 10.3.131.25:3306;
}
}

# 配置完成后启动nginx
/usr/local/nginx/bin/nginx
# 测试登录
mysql -uroot -p'QianFeng@123' -h 10.3.131.21 -P 3305