nginx tcp端口转发_Nginx TCP端口转发和基于域名的HTTP流量转发

开发过程中经常遇到这样的需求需要基于某网关设备做负载均衡

内网中某台服务器提供外网访问服务

80端口流量区分

TCP端口转发

需求1、2归结起来说就是对TCP流量转发,nginx 原生支持tcp流量转发。

比如我A服务器(192.168.1.100)是网关设备,有公网访问能力;B(192.168.1.101)、C(192.168.1.102)服务器是内网服务器;想通过A服务器将请求转发到B、C服务。具体配置如下:stream{

server{

listen 0.0.0.0:10190 udp;

proxy_responses 0;

proxy_timeout 2s;

proxy_pass proxy_b;

}

server{

listen 0.0.0.0:10191 udp;

proxy_responses 0;

proxy_timeout 2s;

proxy_pass proxy_c;

}

upstream proxy_b{

server 192.168.1.101:10290;

}

upstream proxy_c{

server 192.168.1.102:10290;

}

}

该配置需要再ngxin顶级模块中配置。通过上面的配置,就能将A服务器的10190转发到B服务器的10290,A服务器的10191转发到C服务器的10290。

HTTP流量转发

上面介绍的是纯TCP转发,如果想做HTTP分流,比如将不同请求

你可能感兴趣的:(nginx,tcp端口转发)