讲师中心 微信公众号
AI工具推荐 视频效率加速

如何通过 Docker 容器化部署 Nginx 反向代理

陌静小哥_6217

陌静小哥_6217

发布时间:2026-07-14 10:07:47

|

733人浏览过

|

来源于php中文网

原创

关键在于配置可维护、网络可互通、变更可热更新;需挂载外部配置与日志、统一自定义网络、HTTPS自动续期、支持WebSocket,并确保DNS与端口开放。

如何通过 docker 容器化部署 nginx 反向代理

直接用 Docker 部署 Nginx 反向代理,关键不是“跑起来”,而是让配置可维护、网络可互通、变更可热更新。生产环境里最常踩的坑是:配置写死在镜像里、日志不落盘、容器重启后代理失效、HTTPS 证书无法自动续期。

明确部署方式选型

根据服务规模和运维习惯选一种:

  • 单容器手动挂载(适合小项目/测试):用 docker run 启动,把本地 nginx.conf 和日志目录挂载进去,配置改完 reload 即可生效
  • Docker Compose 编排(推荐大多数场景):用 docker-compose.yml 统一管理 Nginx + 后端服务,定义网络、卷、环境变量,启动/重启一键同步
  • nginx-proxy 自动化代理(适合多服务动态增删):启动一个 nginxproxy/nginx-proxy 容器,其他服务只需加 VIRTUAL_HOST 环境变量,它自动监听容器启停并生成配置

配置文件必须外部挂载

别把 nginx.conf 打进镜像——每次改配置都要重新 build,还容易丢失修改。正确做法是:

Docker Compose Linter
Docker Compose Linter

检查 docker-compose.yml 文件的安全问题、最佳实践和端口冲突

下载
  • 在宿主机建目录,比如 /opt/nginx/{conf,logs,www}
  • 把自定义的 conf.d/proxy.conf 放进去,内容类似:
upstream blog_app { server blog-app:8083; }
server {
  listen 80;
  server_name wzx.glaty.cn;
  location /api/ { proxy_pass http://blog_app; }
  location /files/ { proxy_pass http://minio:9000; }
  location / { root /usr/share/nginx/html; }
}
  • 启动时用 -v /opt/nginx/conf:/etc/nginx/conf.d 挂载,Nginx 会自动加载 conf.d/*.conf
  • 同时挂载 -v /opt/nginx/logs:/var/log/nginx,确保错误日志不丢

确保容器间网络互通

反向代理要能访问后端服务,网络连通性比配置本身更重要:

  • 所有相关容器(Nginx、后端应用、DB、MinIO 等)必须在同一个自定义 Docker 网络里,比如 blog-net
  • 后端服务启动时指定网络:--network blog-net,或在 docker-compose.yml 中统一声明 networks
  • Nginx 配置中用容器名当 host,如 proxy_pass http://blog-app:8083,而不是 localhost 或 IP
  • 验证方式:进入 Nginx 容器执行 ping blog-app 或 curl -v http://blog-app:8083/health

HTTPS 和动态配置要提前规划

HTTP 是起点,但上线前基本都要切 HTTPS,别等最后补:

  • 证书建议用 certbot + nginxproxy/acme-companion 组合,配合 nginx-proxy 实现自动签发与续期
  • 如果自己管理证书,把 fullchain.pem 和 privkey.pem 挂载进容器,并在 server 块中启用 ssl_certificate 和 ssl_certificate_key
  • 需要 WebSocket 支持?在 location 块里加上:proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
  • 对外暴露的域名必须 DNS 解析到宿主机 IP,且防火墙放行 80/443 端口

热门AI工具

更多
二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

437

2023.08.15

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

920

2023.09.08

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2932

2023.09.19

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

976

2023.10.09

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

869

2023.10.17

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

454

2023.10.17

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2656

2023.10.18

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

4952

2023.10.20

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

0

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

宝塔 Docker 模块使用手册
宝塔 Docker 模块使用手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn