1. 为什么选择Caddy+Docker Compose方案
在单机服务器环境下部署HTTPS服务时,传统方案需要手动配置Nginx/Apache、申请证书、设置自动续期,整个过程繁琐且容易出错。而Caddy作为新一代Web服务器,内置自动HTTPS功能,配合Docker Compose的容器编排能力,可以实现"开箱即用"的HTTPS服务部署。
我三年前开始在生产环境使用这套组合,最直观的感受是:原先需要半天完成的HTTPS配置工作,现在只需15分钟就能搞定。更重要的是,证书自动续期这个最容易出问题的环节,Caddy已经完美解决了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与工具选型
2.1 基础环境要求
- 一台Linux服务器(推荐Ubuntu 20.04+)
- 已安装Docker和Docker Compose
- 域名解析已指向服务器IP
- 开放80和443端口
注意:如果使用云服务器,记得在安全组规则中放行80/443端口。我曾在阿里云上排查了半小时才发现是安全组没配置。
2.2 为什么选择这些工具
- Caddy:相比Nginx的复杂配置,Caddy的Caddyfile语法更简洁,自动HTTPS功能基于Let's Encrypt实现,无需额外配置
- Docker Compose:通过声明式配置管理多个容器,特别适合单机多服务的场景
- 容器化部署:避免污染主机环境,方便迁移和版本控制
3. 核心配置解析
3.1 Docker Compose文件编写
创建docker-compose.yml文件:
yaml复制version: '3'
services:
caddy:
image: caddy:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./data/caddy:/data
- ./config/caddy:/config
environment:
- ACME_AGREE=true
关
