发布于 2026-01-06 5 阅读
0

使用 Docker Compose、NGINX 和自动 SSL 证书管理多网站服务器

使用 Docker Compose、NGINX 和自动 SSL 证书管理多网站服务器

继我上一篇关于在 Clever Cloud 上部署 Vue 应用的文章之后,我一直在考虑管理一台服务器,并将我所有的业余项目都部署在上面。我的目标是:

  • 轻松设置反向代理
  • 自动生成/续订 SSL 证书(Let's Encrypt)
  • 一些简单的配置

我在GitHub上注意到一个项目:

GitHub 标志 evertramos / nginx-proxy-automation

集成了 Let's Encrypt 的自动化 Docker Nginx 代理。

该项目可在几秒钟内创建一个生产环境。所有组件都已容器化。通过查看docker-compose.yml文件,可以看出该环境基于 3 个主要容器:

  • nginx-webNGINX 反向代理服务器和 Web 服务器,它将请求分发到相应的容器。
  • nginx-gen它会生成vhost配置,并检测正在运行的容器是否已启动或停止,以重新加载 NGINX。
  • nginx-letsencrypt自动创建/续订 Let's Encrypt 证书

以下是一个简化的示意图:

docker compose letsencrypt nginx 代理模式

设置过程非常简单易懂,只需克隆项目,然后复制示例 Dotenv 文件并进行自定义配置即可。最后,执行脚本start.sh即可拉取镜像并运行容器。

要使应用程序在网络上可用,容器必须连接到webproxy网络,并且需要 3 个环境变量:

VIRTUAL_HOST=your.domain.com
LETSENCRYPT_HOST=your.domain.com
LETSENCRYPT_EMAIL=your.email@your.domain.com
Enter fullscreen mode Exit fullscreen mode

配置 DNS 提供商,使其指向your.domain.com服务器 IP 地址。启动容器,就完成了!访问指定域名下的 Web 应用程序。

例如,以下项目可以在几秒钟内创建:

结论

对于拥有数十万用户的大型项目来说,这个项目docker-compose-letsencrypt-nginx-proxy-companion或许并非最佳选择(我从未尝试过)。然而,它对于小型应用来说却非常完美。它易于部署且值得信赖。此外,它还拥有一个小型社区,其创建者在 GitHub 上也积极响应。

目前来说,这个项目对我来说是一个很好的解决方案,可以低成本地在网络上托管我的所有项目。我非常满意!

您如何管理服务器和项目?

感谢阅读!

文章来源:https://dev.to/steeve/manage-a-multiple-websites-server-with-docker-compose-nginx-and-auto-ssl-certificates-298