注疏 · 运维

Caddy

别名 caddy

一个自动管理 HTTPS 证书的 Web 服务器。mindplace 用它做静态文件服务和 /api 反代,一行配置换来自动续期的证书。

简述

Caddy 是一个 Web 服务器,最大卖点是自动 HTTPS:你写个域名,它自己去 Let’s Encrypt 申请证书、自动续期,不用管。

详解

mindplace 用它干两件事:把 Astro 构建出的静态页发出去,以及把 /api/* 反代给后端的 FastAPI。配置文件(Caddyfile)短得惊人,几行搞定,比 Nginx 要外挂 Certbot 手动维护证书省心得多。备案下来后从 IP 模式换成域名自动 HTTPS,也就改几行配置的事。

深化

用 Caddy 踩过一个很隐蔽的坑,值得记:Caddyfile 通过 bind mount 挂进容器,git pull 更新了文件内容,但 docker compose up 不会因此重启容器、Caddy 也不自动重读配置——生产一直跑着旧配置。更狠的是单文件 bind mount 绑死了创建时的 inode,git 用”临时文件+改名”更新后是新 inode,容器里那个挂载点还盯着旧的,连 reload 都读不到。最后改成挂目录、并在部署脚本里显式 reload 才根治。“配置文件更新 ≠ 配置生效”,中间隔着一次 reload。