使用 Docker Compose、NGINX 和自动 SSL 证书管理多网站服务器
继我上一篇关于在 Clever Cloud 上部署 Vue 应用的文章之后,我一直在考虑管理一台服务器,并将我所有的业余项目都部署在上面。我的目标是:
- 轻松设置反向代理
- 自动生成/续订 SSL 证书(Let's Encrypt)
- 一些简单的配置
我在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 证书
以下是一个简化的示意图:
设置过程非常简单易懂,只需克隆项目,然后复制示例 Dotenv 文件并进行自定义配置即可。最后,执行脚本start.sh即可拉取镜像并运行容器。
要使应用程序在网络上可用,容器必须连接到webproxy网络,并且需要 3 个环境变量:
VIRTUAL_HOST=your.domain.com
LETSENCRYPT_HOST=your.domain.com
LETSENCRYPT_EMAIL=your.email@your.domain.com
配置 DNS 提供商,使其指向your.domain.com服务器 IP 地址。启动容器,就完成了!访问指定域名下的 Web 应用程序。
例如,以下项目可以在几秒钟内创建:
- WordPress:docker-wordpress-letsencrypt:
- GitLab:gitlab-docker-letsencrypt
- 更多的...
结论
对于拥有数十万用户的大型项目来说,这个项目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
