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

相关推荐
tg_xianheyun6 小时前
CDN节点分布如何影响网页加载速度和用户体验
服务器·cdn加速·全球访问优化
lsh曙光6 小时前
延时at指令和定时cron指令
linux·服务器·网络
似的8357 小时前
一步一步学习使用FireMonkey动画() 使用TAnimator类创建动画
linux·学习·nginx
夏殇之殁8 小时前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript
我不管我就要叫小猪9 小时前
嵌入式Linux----网络通信
linux·运维·服务器
江湖有缘9 小时前
Docker实战 :使用Docker部署OneTerm堡垒机
运维·docker·容器
泡沫冰@9 小时前
ECS 的介绍和使用
linux·服务器·网络
土星云SaturnCloud10 小时前
抽水蓄能设备智慧运营:基于土星云边缘计算实现机组全生命周期预测性维护
服务器·人工智能·ai·边缘计算
hyf32663311 小时前
泛程序:从零开始搭建稳定程序项目框架
运维·服务器·爬虫·百度·seo
NiceCloud喜云12 小时前
海外云服务器怎么选?适用场景、价格和避坑经验总结
运维·服务器