nginx在1.9版本以前默认没有tcp的4层代理负载均衡,如果要使用的话得添加相应的模块,但是在1.9版本以后居然内置了这样一个功能,那我就得试试了

    下载地址暂时省略

     编译的时候需要添加如下参数才能放开4层负载均衡

    

[root@zns conf]# ../sbin/nginx -v
nginx version: nginx/1.9.0

[root@zns conf]# ../sbin/nginx -V
nginx version: nginx/1.9.0
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55)
built with OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
TLS SNI support disabled
configure arguments: --prefix=/usr/local/nginx --with-stream --with-stream_ssl_module

  在make && make install 之后就开始编辑配置文件,如下

worker_processes  1;

events {
    worker_connections  1024;
}

=========================================下面这一部分是最重要的,其他的我都省掉了
stream {

    upstream abc{                      #定义upstream名字为abc
        server 172.24.11.11:3306;        #这是给后台的mysql做代理
        }

    server {
        listen       3306;               #监听本地的3306端口
        proxy_pass  mysql;               #经过3306端口的请求都转发到upstream的abc后台
        }

}

   如何验证?使用mysql -u root -pxxxxxx -h nginx_ip(这个是nginx代理地址的ip),能够登录到后台的mysql就oK,需要注意的是,后台的mysql数据库应该要允许从nginx_ip来的请求