kavin

nginx tcp代理教程

kavin nginx 2018-05-04 3362浏览 0

nginx tcp代理功能由nginx_tcp_proxy_module模块提供,同时监测后端主机状态。

该模块包括的模块有:

ngx_tcp_module

ngx_tcp_core_module

ngx_tcp_upstream_module

 ngx_tcp_proxy_module

ngx_tcp_upstream_ip_hash_module

 

1. 安装

 

# wget http://nginx.org/download/nginx-1.4.4.tar.gz

# tar zxvf nginx-1.4.4.tar.gz

# cd nginx-1.4.4

# ./configure --add-module=/path/to/nginx_tcp_proxy_module

# make

# make install

2. 配置

 

http {

    listen 80;

    location /status {

        check_status;

    }

}

tcp {

    upstream cluster_www_94ip_com {

        # simple round-robin

        server 127.0.0.1:1234;

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

        #check interval=3000 rise=2 fall=5 timeout=1000 type=ssl_hello;

        #check interval=3000 rise=2 fall=5 timeout=1000 type=http;

        #check_http_send "GET / HTTP/1.0\r\n\r\n";

        #check_http_expect_alive http_2xx http_3xx;

    }

    server {

        listen 8888;

        proxy_pass cluster_www_94ip_com;

    }

}

这会出现一个问题,就是tcp连接会掉线。原因在于当服务端关闭连接的时候,客户端不可能立刻发觉连接已经被关闭,需要等到当Nginx在执行check规则时认为服务端链接关闭,此时nginx会关闭与客户端的连接。

 

3. 保持连接配置

 

http {

    listen 80;

    location /status {

        check_status;

    }

}

tcp {

 timeout 1d;

    proxy_read_timeout 10d;

    proxy_send_timeout 10d;

    proxy_connect_timeout 30;

    upstream cluster_www_94ip_com {

        # simple round-robin

        server 127.0.0.1:1234;

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

        #check interval=3000 rise=2 fall=5 timeout=1000 type=ssl_hello;

        #check interval=3000 rise=2 fall=5 timeout=1000 type=http;

        #check_http_send "GET / HTTP/1.0\r\n\r\n";

        #check_http_expect_alive http_2xx http_3xx;

    }

    server {

        listen 8888;

        proxy_pass cluster_www_94ip_com;

 so_keepalive on;

        tcp_nodelay on;

    }

}

 


转载请注明:IT运维空间 » nginx » nginx tcp代理教程

继续浏览有关 nginx 的文章
发表评论