使用的是这个module,https://github.com/yaoweibin/nginx_tcp_proxy_module.

$ wget 'http://nginx.org/download/nginx-1.2.1.tar.gz'
$ tar -xzvf nginx-1.2.1.tar.gz
$ cd nginx-1.2.1/
$ patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch
$ ./configure --add-module=/path/to/nginx_tcp_proxy_module
$ make
$ make install

然后再nginx.conf里面:

http{}
mail{}
tcp {
        upstream tcp_socket {
              server localhost:8751;
              check interval=3000 rise=2 fall=5 timeout=1000;
        } 
        server {
              listen 8750;
              proxy_pass tcp_socket;
        }
}

然后nginx -s reload 这样就可以了。然后启动本地的某个tcp程序,监听端口8751。用测试程序发起一个8750的连接请求,测试通过。而且不影响http的代理。 但是这个也有副作用,当服务端关闭连接的时候,客户端不可能立刻发觉连接已经被关闭,需要等到: 当nginx在执行check规则时认为服务端链接关闭,nginx会关闭与客户端的连接。