Let's Encrypt Docker Compose 项目教程

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),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值