← 返回文章列表
从宝塔到 Caddy:一次 Web 服务器的精简迁移
这台服务器最初是宝塔面板 + nginx + PHP 全家桶。后来只用来托管静态页面和反代,宝塔的内存占用就显得过于沉重。
清理前
| 组件 | 内存占用 |
|---|---|
| 宝塔面板自身 | ~80 MB |
| nginx | ~60 MB |
| PHP-FPM | ~50 MB |
| MySQL | ~60 MB |
| 各种守护进程 | ~50 MB |
| 合计 | ~300 MB |
服务器总共才 8G,七日杀占 2.4G,这些 Web 设施占 300M 实在不划算。
选择 Caddy
对比了几个选项:
- nginx:功能最强,但 SSL 证书要手动管理(acme.sh / certbot)
- lighttpd:太轻,功能不全
- Caddy:自动 HTTPS(Let's Encrypt ACME)、Caddyfile 语法简洁、内存友好
最终选 Caddy,主要看中零配置 HTTPS 和 Caddyfile 的简洁度。
安装与迁移
dnf copr enable @caddy/caddy -y
dnf install caddy -y
# 停止旧服务
systemctl stop nginx
systemctl disable nginx
# Caddyfile
www.chijiaozi.cn {
root * /var/www/chijiaozi
file_server
}
启动后 Caddy 自动从 Let's Encrypt 申请证书,全过程 3 秒。nginx 时代要折腾半天 certbot。
迁移后
| 指标 | 迁移前 | 迁移后 |
|---|---|---|
| Web 服务内存 | ~300 MB | ~68 MB |
| 进程数 | 20+ | 约 8 |
| SSL 证书管理 | 手动 acme.sh | 自动续期 |
坑
- Caddy 的 COPR 源在国内偶有抽风,可以备好 RPM 包做离线安装
- 裸域(chijiaozi.cn 不带 www)没配 DNS 解析,Caddy 申请证书会失败——记得先确保 DNS A 记录到位
- Caddy 没有像宝塔那样的 Web UI 面板,一切靠 Caddyfile。但话说回来,就这几行配置,真不需要 UI
结论:小型个人服务器直接上 Caddy。nginx 留给需要复杂配置的场景。