Caddy 本地开发指南
使用 Caddy 在 localhost 提供自动 HTTPS 与反向代理,将请求转发到 Vite、Node、PHP 等后端。
Caddy 是现代化的 Web 服务器,以自动 HTTPS(Let’s Encrypt)和简洁的 Caddyfile 配置著称。本地开发常用作反向代理,统一 localhost 入口,转发到 Vite(5173)、Laravel(8000)等后端。
典型 localhost 场景
| 配置 | 效果 |
|---|---|
| 反向代理到 Vite | 浏览器访问 http://localhost → 内部转发到 localhost:5173 |
| 多项目路径 | /api → 3000,/ → 5173 |
| 本地 HTTPS | https://localhost 使用 Caddy 内置本地证书 |
安装
macOS:brew install caddy
Linux:见 caddyserver.com/docs/install
Windows:下载 exe 或使用 Scoop
Caddyfile 示例
代理 Vite 开发服务器
:80 {
reverse_proxy localhost:5173
}启动:caddy run 或 caddy start --config Caddyfile
访问 http://localhost 即 Vite 应用。
前后端分离
:80 {
handle /api/* {
reverse_proxy localhost:3000
}
handle {
reverse_proxy localhost:5173
}
}本地 HTTPS
localhost {
reverse_proxy localhost:4321
}Caddy 自动生成本地信任证书(需安装 Caddy 的 root CA:caddy trust)。
与 Nginx / Apache 对比
| 项 | Caddy | Nginx |
|---|---|---|
| 配置 | Caddyfile 极简 | nginx.conf 较繁琐 |
| HTTPS | 自动申请与续期 | 需 certbot 等 |
| 生态 | 较新,本地/dev 友好 | 生产极广泛 |
常见问题
80 端口被 Apache/XAMPP 占用
停止其他 Web 服务,或 Caddy 监听 :8080。
WebSocket / HMR 失败
Caddy 默认支持 WebSocket 反向代理;确保 reverse_proxy 指向正确的 Vite 端口。
与 Docker
可将 Caddy 作为 Compose 中唯一暴露 80/443 的入口容器。
小结
Caddy 适合在本地用 http://localhost 统一代理多个 dev server,并可选 https://localhost 调试安全上下文;配置比 Nginx 更简单。