Caddy简易教程-Linux篇

目录

  1. 1. 一、安装 Caddy(以 Ubuntu/Debian 为例)
    1. 1.1. 方法 1:官方脚本安装(推荐)
    2. 1.2. 方法 2:手动下载二进制文件
  2. 2. 二、准备网页文件
    1. 2.1. 创建网站目录
    2. 2.2. 将 index.html 放入目录
  3. 3. 三、配置 Caddy
    1. 3.1. 编辑 Caddyfile
    2. 3.2. 写入配置内容(基础版):
  4. 4. 四、启动 Caddy
    1. 4.1. 使用 systemd 服务管理
    2. 4.2. 验证运行
  5. 5. 五、防火墙配置(如有)
    1. 5.1. 如果使用 ufw
    2. 5.2. 如果使用 firewalld
  6. 6. 六、高级配置示例
    1. 6.1. 1. 启用自动 HTTPS
    2. 6.2. 2. 反向代理配置
  7. 7. 七、日志查看
    1. 7.1. 实时日志
    2. 7.2. 查看错误日志
  8. 8. 八、更新 Caddy
    1. 8.1. 权限问题:
    2. 8.2. 域名配置:
    3. 8.3. 生产环境建议:

在 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+OEnterCtrl+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 默认自动管理证书。