目录
[1. 服务器环境](#1. 服务器环境)
[2. Docker-compose部署NGINX](#2. Docker-compose部署NGINX)
[2.1 创建目录](#2.1 创建目录)
[2.2 创建文件](#2.2 创建文件)
[2.3 文件具体内容](#2.3 文件具体内容)
[2.3.1 docker-compose.yml文件](#2.3.1 docker-compose.yml文件)
[2.3.2 nginx.conf文件](#2.3.2 nginx.conf文件)
[2.3.3 stream.conf文件](#2.3.3 stream.conf文件)
[3. 启动服务](#3. 启动服务)
1. 服务器环境
[root@monitor ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@monitor ~]# docker -v
Docker version 26.1.4, build 5650f9b
[root@monitor ~]# docker-compose -v
docker-compose version 1.25.4, build 8d51620a
2. Docker-compose部署NGINX
2.1 创建目录
mkdir -p /mnt/tcp_port_transfer
2.2 创建文件
[root@monitor tcp_port_transfer]# tree .
.
|-- docker-compose.yml
|-- nginx.conf
`-- stream.conf
0 directories, 3 files
[root@monitor tcp_port_transfer]#
2.3 文件具体内容
2.3.1 docker-compose.yml文件
version: "3"
services:
nginx-tcp-proxy:
image: nginx:1.28 # 使用官方 1.28 版本镜像
container_name: nginx-tcp-proxy
network_mode: "host" # 使用宿主机网络模式
restart: always # 设置容器总是重启,实现开机自启
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro # 挂载主配置文件
- ./stream.conf:/etc/nginx/conf.d/default.conf:ro # 挂载四层代理配置
2.3.2 nginx.conf文件
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
# 关键配置:引入四层代理配置
stream {
include /etc/nginx/conf.d/*.conf;
}
2.3.3 stream.conf文件
# 配置具体的转发服务
server {
listen 30008;
proxy_connect_timeout 5s;
proxy_timeout 300s;
proxy_pass 1.2.3.4:65512;
}
server {
listen 30009;
proxy_connect_timeout 5s;
proxy_timeout 300s;
proxy_pass 1.2.3.4:65513;
}
3. 启动服务
cd /mnt/tcp_port_transfer
docker-compose up -d
备注:修改nginx.conf和stream.conf配置文件后,重启容器后生效。