使用letsencrypt-docker-compose部署Let's Encrypt证书和Nginx
本文将引导您通过开源项目 letsencrypt-docker-compose 快速设置Nginx服务器,自动获取并续期免费的Let's Encrypt SSL/TLS证书。
1. 项目介绍
letsencrypt-docker-compose
是一个基于Docker Compose的项目,用于简化在多域名环境中配置Nginx及集成Let's Encrypt的过程。它提供了一个命令行接口工具,可帮助配置SSL/TLS证书,自动更新,并确保HTTPS正确工作。
2. 项目快速启动
安装依赖
确保您已安装了Docker 和 Docker Compose。
获取项目
克隆项目仓库:
git clone https://github.com/eugene-khyst/letsencrypt-docker-compose.git
cd letsencrypt-docker-compose
配置域名校验
编辑 config.json.example
并替换domains
字段中的示例域名为您自己的实际域名:
{
"email": "youremail@example.com",
"domains": ["example.com", "www.example.com"]
}
保存文件并重命名为 config.json
.
初始化设置
运行CLI工具进行初始配置,选择测试证书以验证环境:
./cli.sh config
启动服务
启动容器服务:
./cli.sh up
这将启动Nginx、Certbot以及相关容器,自动申请SSL证书。
3. 应用案例与最佳实践
多个Docker Compose项目
如果您有多个Docker Compose项目,让它们共享网络以便Nginx反向代理到上游服务:
在其他项目的 docker-compose.yml
文件中加入以下内容:
version: "3"
services:
your-service-name:
...
networks:
- letsencrypt-docker-compose_default
...
networks:
letsencrypt-docker-compose_default:
external: true
自定义PHP-FPM配置
如果您的应用程序依赖PHP-FPM,可以将PHP脚本复制到 html/$[domain]
目录:
cp -R /examples/php/ /html/your-domain/
然后在Nginx配置中对应设置代理。
4. 典型生态项目
该项目利用了以下开源工具:
- Let's Encrypt 提供免费且自动化的SSL/TLS证书。
- Nginx 作为反向代理服务器,处理HTTP/HTTPS请求。
- Certbot 实现与Let's Encrypt API交互,自动化证书申请与续期。
其他生态项目包括:
- Docker 作为容器化平台。
- Docker Compose 用于管理多容器的应用。
通过这些组件的组合,您可以轻松地构建安全的多站点Web服务环境。
本教程提供了一种快速而简便的方法来设置Nginx和Let's Encrypt,确保您的Web服务拥有安全的HTTPS连接。结合最佳实践和生态项目的协同工作,实现高效、可靠的网站托管。