← 返回文章列表

从宝塔到 Caddy:一次 Web 服务器的精简迁移

2026-06-28 · Caddy · DevOps · Nginx

这台服务器最初是宝塔面板 + 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 留给需要复杂配置的场景。