在 Linux 平台使用 Caddy 部署网页的完整操作流程:
一、安装 Caddy(以 Ubuntu/Debian 为例)
方法 1:官方脚本安装(推荐)
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
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
方法 2:手动下载二进制文件
wget "https://caddyserver.com/api/download?os=linux&arch=amd64" -O caddy
chmod +x caddy
sudo mv caddy /usr/local/bin/
二、准备网页文件
创建网站目录
sudo mkdir -p /var/www/mywebsite
sudo chown -R www-data:www-data /var/www/mywebsite # 根据实际用户修改
将 index.html 放入目录
sudo cp /path/to/your/index.html /var/www/mywebsite/
三、配置 Caddy
编辑 Caddyfile
sudo nano /etc/caddy/Caddyfile
写入配置内容(基础版):
# 使用 HTTP
:80 {
root * /var/www/mywebsite
file_server
}
# 使用 HTTPS(需要域名)
your-domain.com {
root * /var/www/mywebsite
file_server
}
保存文件(Ctrl+O
→ Enter
→ Ctrl+X
)。
四、启动 Caddy
使用 systemd 服务管理
sudo systemctl enable caddy # 设置开机自启
sudo systemctl start caddy # 立即启动
sudo systemctl status caddy # 查看状态
验证运行
curl http://localhost
五、防火墙配置(如有)
如果使用 ufw
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
如果使用 firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
六、高级配置示例
1. 启用自动 HTTPS
your-domain.com {
root * /var/www/mywebsite
file_server
tls your-email@example.com # 自动申请 Let's Encrypt 证书
}
2. 反向代理配置
api.your-domain.com {
reverse_proxy localhost:3000
}
七、日志查看
实时日志
sudo journalctl -u caddy -f
查看错误日志
sudo tail -f /var/log/caddy/access.log
sudo tail -f /var/log/caddy/error.log
八、更新 Caddy
sudo apt update && sudo apt upgrade caddy
⚠️ 注意事项
权限问题:
- 确保 Caddy 用户(默认
www-data
)对网站目录有读取权限。 - 如果需要绑定 80/443 端口,Caddy 需要以 root 权限运行。
域名配置:
- 如果使用 HTTPS,需提前将域名解析到服务器 IP。
- 确保服务器防火墙开放 80 和 443 端口。
生产环境建议:
- 使用非 root 用户运行:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
。 - 配置自动续期证书:Caddy 默认自动管理证书。