Docker + Nginx 反向代理 + HTTPS 全套配置实战

一个服务器上跑了五个服务,前端 3000、API 8080、文档站 4000、管理后台 8888、WebSocket 服务 9090——打开浏览器访问之前,先得在地址栏敲端口号,还得祈祷这个端口没被防火墙拦住。浏览器地址栏直接飘红警告"不安全", Chrome 甚至直接弹"此网站不安全"的拦截页面。

然后访问这些服务的同事反馈:每次都要翻聊天记录找端口号,8080 到底是 API 还是后端的?

把这些服务全部收归 80 和 443 端口,域名区分,自动 HTTPS。不需要花钱买证书,不需要手动续签,不需要暴露业务端口到公网。

这就是 Nginx 反向代理 + Docker 网络隔离 + Let’s Encrypt 自动证书这套组合拳要解决的事。

Docker 网络隔离区

宿主机

app.example.com

api.example.com

docs.example.com

ws.example.com/ws

Nginx 容器
:80 / :443

前端容器
frontend:3000

后端容器
backend:8080

文档容器
docs:4000

WS 容器
ws:9090

PostgreSQL
db:5432

外网请求

核心思路一目了然:Nginx 是唯一暴露到公网的容器,其他所有服务通过 Docker 内部网络互相访问,端口完全不对外开放。外部只能看到 Nginx,业务容器对外部来说是"不可见"的。


整体架构流程

在动手之前,先把整个部署流程理清楚,后面一步步来不会遗漏:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SilentSamsara

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值