Docker Compose 生产部署:端口、健康检查与宿主机 Nginx

Article

Docker Compose 生产部署:端口、健康检查与宿主机 Nginx

管理员技术分享100 阅读

Docker Compose 生产部署:端口、健康检查与宿主机 Nginx

同机已有 Nginx 或其他站点时,业务容器应只监听 127.0.0.1,由宿主机统一入口。

推荐端口绑定

ports:
  - "127.0.0.1:13000:3000"  # frontend
  - "127.0.0.1:18080:8080"  # backend

不要把后端直接暴露到公网;上传与 API 一律经 Nginx 转发。

健康检查

  • MySQL:「mysqladmin ping」
  • Backend:「/health」
  • Frontend:请求首页路径(注意 「basePath」 为空时是 「/」)

Compose 里 「depends_on: condition: service_healthy」 能显著减少「前端起来了但 API 还没好」的启动毛刺。

Nginx 要点

  • 「proxy_set_header Host / X-Forwarded-*」 必须带上,否则日志与 HTTPS 跳转会错
  • WebSocket / HMR 不需要时,仍建议带上 「Upgrade」 头以兼容 Next.js
  • 证书用 certbot 覆盖 「www」 与裸域,避免只签一个主机名

同步与密钥

代码可用 rsync 同步;永远不要把 「.env.prod」、证书目录同步覆盖掉。密钥只活在服务器上。

小结

容器负责应用生命周期,宿主机 Nginx 负责流量与证书。边界清晰后,同机多项目才不会互相抢端口。

评论

暂无评论,来聊聊这篇文章吧。