3.2 KiB
3.2 KiB
title, type, aliases, tags
| title | type | aliases | tags | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Caddy | entity |
|
|
Caddy
Overview
Caddy 是一个用 Go 语言编写的开源 Web 服务器,以自动 HTTPS 和简洁配置著称。相比 Nginx,Caddy 默认启用 HTTPS(Let's Encrypt 自动证书),配置语法更简洁直观。
Core Features
| 特性 | 说明 |
|---|---|
| 自动 HTTPS | 自动从 Let's Encrypt 申请和续期 SSL 证书 |
| 自动 HTTP→HTTPS 重定向 | 无需手动配置 |
| TLS 1.3 支持 | 现代加密标准 |
| 配置热加载 | 修改配置无需重启服务 |
| 反向代理 | 支持 HTTP/2、WebSocket |
| Markdown 渲染 | 内置静态文件服务 |
Installation (Ubuntu/Debian)
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
Basic Configuration (Caddyfile)
简单反向代理
n8n.ishenwei.online {
reverse_proxy 127.0.0.1:15678
}
多域名配置
nas.ishenwei.online {
reverse_proxy 127.0.0.1:15000
}
grafana.ishenwei.online {
reverse_proxy 127.0.0.1:13000
}
带认证的反向代理
n8n.ishenwei.online {
basicauth /* {
admin JDJhJDE0JDN3ZXVhV2YyZG9SY2hvYzVmZ2h3QUlVblpOMU4vS1ptcENrSlhySElMb3l5dytOMkh0Tk93
}
reverse_proxy 127.0.0.1:15678
}
Integration with frp
典型架构:frp 建立内网隧道 → Caddy 反向代理到本地端口 → 自动 HTTPS
用户请求 https://n8n.ishenwei.online
↓
阿里云 DNS → VPS 公网 IP
↓
Caddy (443端口) 接收请求
↓
Caddyfile 配置匹配 n8n.ishenwei.online
↓
reverse_proxy 127.0.0.1:15678
↓
frpc 在 VPS 15000 端口监听
↓
frp 隧道 → 内网 Ubuntu 5678 端口
↓
n8n 服务
Common Commands
# 验证配置文件语法
sudo caddy validate --config /etc/caddy/Caddyfile
# 重载配置(热加载)
sudo systemctl reload caddy
# 重启服务
sudo systemctl restart caddy
# 查看状态
sudo systemctl status caddy
# 紧急恢复(服务卡死时)
sudo systemctl stop caddy
sudo pkill -9 caddy
sudo systemctl start caddy
Troubleshooting
Caddyfile 语法检查
sudo caddy validate --config /etc/caddy/Caddyfile
# 输出 "Valid configuration" 表示语法正确
端口被占用
如果 Caddy 启动失败,检查端口是否被占用:
ss -ltnp | grep ':80\|:443'
Caddy 意外占用端口
某些一键脚本可能配置 Caddy 监听非标准端口,检查是否有:
:7000 {
reverse_proxy ...
}
Related Concepts
- 反向代理 — Caddy 的核心功能
- Let's Encrypt — Caddy 自动使用的 SSL 证书提供商
- frp — Caddy 常与 frp 配合使用
- VPS — Caddy 通常部署在公网 VPS