Caddy vs Nginx
功能对照;本站生产用 Nginx 的原因。
25 分钟
Caddy vs Nginx
本课 功能对照 Caddy 与 Nginx,并说明 CodeRoadMap 生产选用 Nginx 的原因。学完可据场景选型,测试环境可试 Caddy 自动 HTTPS。
学习目标
- 对照配置、TLS、性能与生态差异
- 将 Nginx 常见模式翻译为 Caddyfile
- 理解本站坚持 Nginx 的运维考量
核心内容
功能对照表
| 能力 | Nginx | Caddy | CodeRoadMap |
|---|---|---|---|
| 反向代理 | proxy_pass | reverse_proxy | 双 upstream |
| 自动 HTTPS | certbot 插件 | 内置 ACME | Nginx + certbot |
| 配置检查 | nginx -t | caddy validate | 部署前必跑 |
| 热重载 | reload | caddy reload | 零停机 |
| 负载均衡 | upstream 多 server | reverse_proxy a b c | 单机暂未用 |
| 限流 / WAF | 模块 + 生态 | 插件 / 第三方 | 见 ngx-headers |
| 国内文档案例 | 极丰富 | 较少 | 团队熟悉 Nginx |
配置行数对比(双后端)
Nginx(节选,见 ngx-api):
upstream coderoadmap_backend { server 127.0.0.1:8080; }
location /api/ { proxy_pass http://coderoadmap_backend/; }
location / { proxy_pass http://coderoadmap_platform; }
# + ssl_certificate、proxy_set_header ...
Caddy(等价):
www.coderoadmap.cn {
handle /api/* { uri strip_prefix /api; reverse_proxy 127.0.0.1:8080 }
handle { reverse_proxy 127.0.0.1:3000 }
}
Caddy 省略 显式 TLS 与多数转发头;Nginx 显式可控,便于审计与复刻历史配置。
何时选 Caddy
- 个人博客、Side Project:最少配置上线 HTTPS
- 内网 homelab:自动证书 + Docker 一键
- 团队已标准化 Nginx +
prod.conf.example:不必迁移
何时坚持 Nginx(本站)
- 生产配置已在
deploy/nginx/prod.conf.example沉淀