Caddy 服务器安装与卸载 🚀
🌐 现代化的 Web 服务器,自动 HTTPS,配置简单
📋 目录
🎯 简介
🌟 Caddy 特点
- ✅ 自动 HTTPS:自动申请和续期 SSL 证书
- ✅ 简单配置:简洁的 Caddyfile 语法
- ✅ 高性能:基于 Go 语言开发
- ✅ 零依赖:单个二进制文件运行
🔗 重要链接
📦 安装方法
🐧 APT 安装(推荐)
1
2
3
4
5
6
7
8
9
10
11
|
# 更新软件包列表
sudo apt update
# 安装 Caddy
sudo apt install caddy -y
# 验证安装
caddy version
# 查看安装信息
caddy list-modules
|
📊 验证安装
1
2
3
4
5
6
7
8
|
# 检查版本
caddy version
# 查看服务状态
systemctl status caddy
# 检查监听端口
sudo netstat -tulnp | grep caddy
|
🔧 自定义安装
1
2
3
4
5
6
7
|
# 下载特定版本
wget https://github.com/caddyserver/caddy/releases/download/v2.7.6/caddy_2.7.6_linux_amd64.tar.gz
# 解压并安装
tar -xzf caddy_2.7.6_linux_amd64.tar.gz
sudo mv caddy /usr/local/bin/
sudo chmod +x /usr/local/bin/caddy
|
🗑️ 卸载方法
🔄 完整卸载步骤
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 1. 停止 Caddy 服务
sudo systemctl stop caddy
# 2. 禁用开机自启
sudo systemctl disable caddy
# 3. 移除软件包
sudo apt remove caddy -y
# 4. 清除配置文件(可选)
sudo apt purge caddy
# 5. 移除无用依赖
sudo apt autoremove -y
# 6. 验证卸载
dpkg -l | grep caddy
|
🧹 清理残留文件
1
2
3
4
5
6
7
8
9
10
11
12
|
# 删除配置文件
sudo rm -rf /etc/caddy/
sudo rm -rf /etc/ssl/caddy/
# 删除日志文件
sudo rm -rf /var/log/caddy/
# 删除数据文件
sudo rm -rf /var/lib/caddy/
# 删除二进制文件(如果自定义安装)
sudo rm -f /usr/local/bin/caddy
|
✅ 验证彻底卸载
1
2
3
4
5
6
7
8
9
|
# 检查进程
ps aux | grep caddy
# 检查文件残留
which caddy
ls -la /usr/bin/caddy /usr/local/bin/caddy 2>/dev/null
# 检查服务配置
systemctl list-unit-files | grep caddy
|
🔧 维护命令
🛠️ 服务管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 启动服务
sudo systemctl start caddy
# 停止服务
sudo systemctl stop caddy
# 重启服务
sudo systemctl restart caddy
# 重载配置(不中断服务)
sudo systemctl reload caddy
# 查看状态
sudo systemctl status caddy
# 启用开机自启
sudo systemctl enable caddy
# 禁用开机自启
sudo systemctl disable caddy
|
📝 配置管理
1
2
3
4
5
6
7
8
9
10
11
|
# 检查配置文件语法
sudo caddy validate --config /etc/caddy/Caddyfile
# 格式化配置文件
sudo caddy fmt --overwrite /etc/caddy/Caddyfile
# 测试配置
sudo caddy adapt --config /etc/caddy/Caddyfile
# 查看当前配置
sudo caddy environ
|
📊 日志管理
1
2
3
4
5
6
7
8
9
10
11
12
|
# 查看实时日志
sudo journalctl -u caddy -f
# 查看最近日志
sudo journalctl -u caddy --since "1 hour ago"
# 查看错误日志
sudo journalctl -u caddy -p err
# 日志文件位置
tail -f /var/log/caddy/access.log
tail -f /var/log/caddy/error.log
|
⚙️ 配置文件
📁 配置文件结构
1
2
3
4
5
6
7
|
/etc/caddy/
├── Caddyfile # 主配置文件
├── ssl/ # SSL证书目录
│ ├── private.key
│ └── fullchain.pem
└── conf.d/ # 附加配置目录
└── *.conf
|
📝 基础配置示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# /etc/caddy/Caddyfile
{
# 全局配置
http_port 80
https_port 443
auto_https disable_redirects
}
# 示例站点配置
example.com {
root * /var/www/html
file_server
encode gzip
# PHP支持
php_fastcgi unix//var/run/php/php-fpm.sock
# 日志配置
log {
output file /var/log/caddy/access.log
format json
}
}
# 反向代理示例
api.example.com {
reverse_proxy localhost:3000 {
header_up Host {host}
header_up X-Real-IP {remote}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
}
}
|
🔒 SSL 配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# 自动SSL
https://mysite.com {
tls {
dns cloudflare {env.CF_API_TOKEN}
}
root * /var/www/mysite
file_server
}
# 自定义证书
https://mysite.com:8443 {
tls /etc/ssl/certs/mysite.crt /etc/ssl/private/mysite.key
root * /var/www/mysite
file_server
}
|
🚀 快速开始
🎯 最小化配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 创建测试目录
sudo mkdir -p /var/www/html
echo "Hello Caddy!" | sudo tee /var/www/html/index.html
# 创建基础配置
sudo tee /etc/caddy/Caddyfile > /dev/null <<'EOF'
:80 {
root * /var/www/html
file_server
}
EOF
# 启动服务
sudo systemctl start caddy
# 测试访问
curl http://localhost
|
🔄 生产环境部署
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!/bin/bash
# Caddy 生产环境部署脚本
# 创建目录结构
sudo mkdir -p /etc/caddy/ssl /var/log/caddy /var/lib/caddy
sudo chown -R www-data:www-data /var/log/caddy /var/lib/caddy
# 创建配置文件
sudo tee /etc/caddy/Caddyfile > /dev/null <<'EOF'
{
email admin@example.com
on_demand_tls {
ask http://localhost:8080/check-domain
}
}
*.example.com {
tls {
on_demand
}
reverse_proxy localhost:3000
}
EOF
# 启用并启动服务
sudo systemctl enable caddy
sudo systemctl start caddy
|
💡 最佳实践
🛡️ 安全建议
1
2
3
4
5
6
7
8
9
10
11
|
# 设置文件权限
sudo chown -R www-data:www-data /var/lib/caddy
sudo chmod 755 /var/lib/caddy
sudo chmod 600 /etc/caddy/ssl/*.key
# 防火墙配置
sudo ufw allow 80/tcp comment 'Caddy HTTP'
sudo ufw allow 443/tcp comment 'Caddy HTTPS'
# 定期更新
sudo apt update && sudo apt upgrade caddy
|
📈 性能优化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# 性能优化配置
{
# 连接限制
servers {
max_connections 1000
}
# 缓冲区大小
buffers {
read 4096
write 4096
}
# 超时设置
timeouts {
read 30s
write 30s
idle 60s
}
# 日志轮转
log {
output file /var/log/caddy/access.log {
roll_size 100mb
roll_keep 10
}
}
}
|
🔄 备份与恢复
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#!/bin/bash
# Caddy 备份脚本
BACKUP_DIR="/backup/caddy/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
# 备份配置
cp -r /etc/caddy $BACKUP_DIR/
cp -r /var/lib/caddy $BACKUP_DIR/data/
# 备份SSL证书
cp -r /etc/ssl/caddy $BACKUP_DIR/ssl/
# 创建压缩包
tar -czf $BACKUP_DIR/caddy-backup.tar.gz $BACKUP_DIR
echo "备份完成: $BACKUP_DIR/caddy-backup.tar.gz"
|
🚨 故障排除
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 查看详细错误信息
sudo caddy run --config /etc/caddy/Caddyfile --watch
# 检查端口占用
sudo lsof -i :80
sudo lsof -i :443
# 测试网络连接
curl -v http://localhost
curl -vk https://localhost
# 重置服务状态
sudo systemctl reset-failed caddy
|
🎯 提示: Caddy 的配置非常灵活,建议从简单配置开始,逐步添加复杂功能。生产环境部署前请充分测试。
📚 学习资源:
🔧 需要帮助?:
1
2
3
4
5
6
7
8
|
# 查看帮助信息
caddy help
# 查看模块帮助
caddy help modules
# 查看环境变量
caddy environ
|