Nginx在企业运维中通常用来均衡HTTP协议,例如我们熟知的80、8080、8081等服务。因为大部分的服务都是http请求访问协议,那有时候需要用到TCP协议,如果来实现均衡呢?

默认nginx不支持tcp的负载均衡,需要打补丁,(连接方式:从客户端收到一个连接,将从本地新建一个连接发起到后端服务器。)

接下来正式配置Nginx均衡TCP:

wget http://nginx.org/download/nginx-1.6.2.tar.gz

wget https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master.zip

源码主页: https://github.com/yaoweibin/nginx_tcp_proxy_module

分别下载两个软件包,然后unzip master.zip解压后如下图:

 Nginx均衡TCP协议服务器案例

tar xvf nginx-1.6.2.tar.gz

cd nginx-1.6.2

patch -p1 </root/nginx_tcp_proxy_module-master/tcp.patch

./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/nginx_tcp_proxy_module-master

 make

 make install

编译完成后,如下图:(有TCP模块参数)

 Nginx均衡TCP协议服务器案例

在nginx.conf配置http段之前添加:

tcp {

        upstream cluster {

            #simple round-robin

            server 192.168.33.10:1234;

            server 192.168.33.10:2345;

            check  interval=3000  rise=2  fall=5  timeout=1000;

        }

        server {

            listen 8888;

            proxy_pass cluster;

        }

    }

如上配置之后,访问nginx 8888端口,默认会将请求转发到后端1234 和2345请求。