Caddy 是什么
自动 TLS、配置简洁;与 Nginx 选型。
25 分钟
Caddy 是什么
Caddy 是用 Go 编写的现代 Web 服务器,以 自动 HTTPS 和 Caddyfile 极简配置 著称。CodeRoadMap 生产环境采用 Nginx 做公网入口;Caddy 适合个人项目、测试机或希望零证书运维的场景。
学习目标
- 理解 Caddy 与 Nginx、Apache 的定位差异
- 了解自动 TLS 如何减少 certbot 手工步骤
- 明确本 track 与 nginx-essentials 的对照关系
核心内容
Web 服务器 vs 反向代理
浏览器 ──HTTPS──► Caddy(:443,自动证书)
├─ /api/* ──► Spring Boot :8080
└─ / ──► Next.js :3000
Caddy 同样承担 TLS 终止、反向代理 与 静态文件 服务,与 Nginx 角色一致,配置语法不同。
为何关注 Caddy
| 场景 | Caddy | Nginx | CodeRoadMap |
|---|---|---|---|
| 自动 HTTPS | 内置 Let's Encrypt | 需 certbot 或手工 | 生产用 Nginx + certbot |
| 配置风格 | Caddyfile 块缩进 | nginx.conf 指令 | deploy/nginx/prod.conf.example |
| 运维生态 | 文档较新,插件 JSON | 国内案例极多 | 生产选 Nginx |
| 适用 | 中小项目、快速上线 | 高并发、复杂路由 | Caddy 作学习/备选 |
Caddy 不负责业务逻辑;JWT、课程数据仍在 Spring Boot,页面在 Next.js。
在本站架构里
公网只暴露 80/443。Java 与 Node 监听 127.0.0.1。域名解析见 dns-essentials;容器部署见 docker-essentials。Caddy 可替换宿主机 Nginx 层,upstream 拓扑不变。
练习
- 对比 Caddy 与 Nginx 在 HTTPS 配置上的步骤数
- 阅读
deploy/nginx/prod.conf.example,思考用 Caddyfile 如何表达同等路由 - 说明反向代理与 kubernetes-essentials Ingress 的相似点
小结
Caddy = 自动 TLS + 简洁反代;CodeRoadMap 生产用 Nginx,Caddy 是轻量替代。 下一课安装与 。