一个服务器上跑了五个服务,前端 3000、API 8080、文档站 4000、管理后台 8888、WebSocket 服务 9090——打开浏览器访问之前,先得在地址栏敲端口号,还得祈祷这个端口没被防火墙拦住。浏览器地址栏直接飘红警告"不安全", Chrome 甚至直接弹"此网站不安全"的拦截页面。
然后访问这些服务的同事反馈:每次都要翻聊天记录找端口号,8080 到底是 API 还是后端的?
把这些服务全部收归 80 和 443 端口,域名区分,自动 HTTPS。不需要花钱买证书,不需要手动续签,不需要暴露业务端口到公网。
这就是 Nginx 反向代理 + Docker 网络隔离 + Let’s Encrypt 自动证书这套组合拳要解决的事。
核心思路一目了然:Nginx 是唯一暴露到公网的容器,其他所有服务通过 Docker 内部网络互相访问,端口完全不对外开放。外部只能看到 Nginx,业务容器对外部来说是"不可见"的。
整体架构流程
在动手之前,先把整个部署流程理清楚,后面一步步来不会遗漏:


2860

被折叠的 条评论
为什么被折叠?



