docker环境下配置 nginx tcp代理

595 阅读1分钟

以下将nginx实现tcp代理功能: tcp客户端-------》请求nginx代理-------》tcp服务器

1、 nginx tcp代理环境搭建

要在Docker中设置一个TCP代理,您可以使用Nginx作为反向代理服务器。以下是一个简单的Dockerfile和Nginx配置示例,用于设置TCP代理。

首先,创建一个Dockerfile:

FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf

然后,创建一个Nginx配置文件 nginx.conf

events {}
 
stream {
    upstream backend {
        server ip:4000;
        server backend2.example.com:4000;
    }
 
    server {
        listen 12345;
        proxy_pass backend;
        proxy_connect_timeout 90s;
    }
}

在上面的配置中,backend1.example.com:4000 和 backend2.example.com:4000 是后端服务器的地址和端口。

构建并运行Docker容器:

docker build -t nginx-tcp-proxy .
docker run -d -p 12345:12345 nginx-tcp-proxy

这将启动一个Nginx TCP代理,监听本地的12345端口,并将流量代理到后端的两个服务器。当客户端连接到您Docker宿主机的12345端口时,Nginx TCP代理将会将连接转发到后端服务4000端口。

2、 测试tcp链接

使用NetAssist,工具 1、在backend2.example.com机器上,使用NetAssist创建server服务,端口4000 2、 使用NetAssist创建client服务,端口12345