nginx实现tcp反向代理

之前对于Nginx的理解一直都是认为是基于HTTP层的反向代理+负载均衡,今天想用Nginx实现TCP层的反向代理,实现基于TCP的端口转发,之前一篇文章iptables实现tcp端口转发已经用iptables实现了。

安装

$ git clone git@github.com:yaoweibin/nginx_tcp_proxy_module.git
$ wget http://tengine.taobao.org/download/tengine-2.0.3.tar.gz
$ tar -zxvf  tengine-2.0.3.tar.gz
$ cd tengine-2.0.3
这一步很重要,根据Ngx的源码打patch,不然就会编译失败
$ patch –p1 < /path/nginx_tcp_proxy_module
$ ./configure  --user=www --group=www --prefix=/opt/nginx --with-syslog --add-module=/path/nginx_tcp_proxy_module/
$ make && sudo make install

TCP反向代理配置

模块指令是TCP,它是不属于HTTP框架内的,所以和HTTP{}同级别。

events {
    worker_connections  1024;
}

http {
    ...
}

tcp {

    upstream firefoxbug {
        # simple round-robin
        server localhost:2221;
        server localhost:2222;
        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 9999;
        proxy_pass firefoxbug;
    }
}

upstream的模块依赖是Ngx之前HTTP反向代理的模块,对于负载均衡的方式配置可以查看Nginx Upstream负载均衡模块

结果


所有到Nginx的9999端口都被转发到22221和22222端口,实现了forward功能。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值