當系統服務執行
Linux 上正式跑 Caddy,用 systemd 最省事:開機自啟、日誌進 journald、改設定可以零停機重載。Debian/Ubuntu 官方套件會裝好 caddy.service。
兩個單元檔
| 單元 | 用途 |
|---|---|
caddy.service |
用 Caddyfile(或你指定的設定檔)啟動 |
caddy-api.service |
主要靠 Admin API 改設定,啟動時 --resume 讀自動儲存的 JSON |
兩個不要同時 enable。從檔案工作流切到 API:
套件預設 Caddyfile 在 /etc/caddy/Caddyfile。編輯後:
不要為了改設定而 stop。停止等於網站中斷;reload 才會在驗證新設定成功後接上。
狀態與日誌
行程以 caddy 使用者執行,家目錄是 /var/lib/caddy:
- 憑證與 PKI:
/var/lib/caddy/.local/share/caddy - 自動儲存的 JSON:
/var/lib/caddy/.config/caddy
備份這兩個目錄,等於備份憑證與執行中設定。
覆寫單元(drop-in)
不要直接改套件提供的 service 檔,用:
常見需求是注入 DNS 供應商 token:
/etc/caddy/.env 權限收緊,內容不要加引號:
改完 sudo systemctl restart caddy(改環境變數通常要 restart,不是 reload)。
靜態二進位自建服務
若你是從 GitHub 放下 binary,官方文件有建立 caddy 系統使用者與單元檔的步驟。重點是:binary 放在 $PATH、Caddyfile 給 caddy 使用者可讀、資料目錄可寫。SELinux 系統還要標對檔案類型,Fedora COPR 套件會處理這件事。
Windows 可用 sc.exe 或 WinSW 註冊服務,重載仍是對 Caddy 下 caddy reload,因為 Windows 服務管理員沒有等同 systemd reload 的設定熱更新。