Let's Encrypt Docker Compose 项目教程
1. 项目的目录结构及介绍
letsencrypt-docker-compose/
├── cli
│ ├── config
│ │ └── cli.conf
│ ├── Dockerfile
│ └── entrypoint.sh
├── docker-compose.yml
├── examples
│ ├── nodejs-backend
│ │ ├── Dockerfile
│ │ └── server.js
│ └── php
│ └── index.php
├── html
│ └── $domain
│ └── index.php
├── nginx
│ ├── Dockerfile
│ ├── default.conf
│ └── ssl.conf
└── README.md
目录结构介绍
cli/: 包含用于初始配置的 CLI 工具。config/: 配置文件目录。Dockerfile: CLI 工具的 Dockerfile。entrypoint.sh: 入口脚本。
docker-compose.yml: Docker Compose 配置文件。examples/: 示例代码。nodejs-backend/: Node.js 后端示例。php/: PHP 示例。
html/: 网站根目录。nginx/: Nginx 配置。Dockerfile: Nginx 的 Dockerfile。default.conf: Nginx 默认配置。ssl.conf: SSL 配置。
README.md: 项目说明文档。
2. 项目的启动文件介绍
docker-compose.yml
version: '3'
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./html:/usr/share/nginx/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./nginx/ssl.conf:/etc/nginx/conf.d/ssl.conf
- ./certs:/etc/letsencrypt
networks:
- letsencrypt-docker-compose_default
certbot:
image: certbot/certbot:latest
container_name: certbot
volumes:
- ./certs:/etc/letsencrypt
- ./html:/usr/share/nginx/html
command: certonly --webroot -w /usr/share/nginx/html -d example.com -d www.example.com --email example@example.com --agree-tos --no-eff-email
networks:
letsencrypt-docker-compose_default:
external: true
启动文件介绍
docker-compose.yml: 定义了 Nginx 和 Certbot 服务,配置了端口映射、卷挂载和网络设置。
3. 项目的配置文件介绍
nginx/default.conf
server {
listen 80;
server_name example.com www.example.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /.well-known/acme-challenge/ {
root /usr/share/nginx/html;
}
location ~ /.well-known/acme-challenge/ {
allow all;
}
}
nginx/ssl.conf
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
配置文件介绍
nginx/default.conf: 配置 Nginx 监听 80 端口,处理 HTTP 请求。nginx/ssl.conf: 配置 Nginx 监听 443 端口,处理 HTTPS 请求,并指定 SSL 证书路径。
以上是 Let's Encrypt Docker Compose 项目的教程,
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



