Docker部署NGINX实现服务四层转发方案

目录

[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配置文件后,重启容器后生效。

相关推荐
zzzzzz31011 小时前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
武子康1 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
ping某2 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
小宇宙Zz4 天前
Maven依赖冲突
java·服务器·maven
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
古城小栈4 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
程序猿阿伟4 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
凡人叶枫4 天前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
AC赳赳老秦4 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw