插件窝 干货文章 Nginx的Web服务器caddy怎么使用

Nginx的Web服务器caddy怎么使用

Caddy Nginx example HTTPS 872    来源:    2025-04-21

Caddy 是一款现代化的、功能强大的 Web 服务器,与 Nginx 类似但配置更简单,内置 HTTPS(自动 Let's Encrypt 证书)、HTTP/2 和易用的语法。以下是 Caddy 的核心使用指南:


1. 安装 Caddy

Linux/macOS (一键脚本)

curl https://getcaddy.com | bash -s personal

或使用包管理器:

# Debian/Ubuntu
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
echo "deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

# CentOS/RHEL
dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy

Windows

下载二进制文件:Caddy 官网


2. 基本配置

Caddy 的配置文件名为 Caddyfile(默认路径 /etc/caddy/Caddyfile),语法极简:

示例 1:静态网站

example.com {
    root * /var/www/html
    file_server
}
  • 自动启用 HTTPS
  • file_server 表示静态文件服务

示例 2:反向代理

api.example.com {
    reverse_proxy localhost:3000
}

代理所有请求到本地的 3000 端口。


3. 常用功能

自动 HTTPS

无需配置,默认自动申请并续签 Let's Encrypt 证书。如需禁用:

example.com {
    tls off
    # ...
}

重定向

example.com {
    redir https://www.example.com{uri} 301
}

负载均衡

backend.example.com {
    reverse_proxy node1:80 node2:80 node3:80 {
        lb_policy round_robin
    }
}

日志记录

example.com {
    log {
        output file /var/log/caddy/access.log
    }
}

4. 启动与管理

启动 Caddy

sudo systemctl start caddy
sudo systemctl enable caddy  # 开机自启

重载配置

sudo systemctl reload caddy

验证配置

caddy validate --config /etc/caddy/Caddyfile

5. 高级功能

PHP 支持

example.com {
    root * /var/www/wordpress
    php_fastcgi unix//run/php/php-fpm.sock
    file_server
}

WebSocket 代理

chat.example.com {
    reverse_proxy localhost:4000 {
        header_up Host {host}
        header_up X-Real-IP {remote}
    }
}

环境变量

{$DOMAIN} {
    root * /sites/{$SITE_DIR}
}

启动时传入变量:

DOMAIN=example.com SITE_DIR=mysite caddy run

6. 与 Nginx 对比的优势

  1. 自动 HTTPS:无需手动配置证书。
  2. 简洁配置Caddyfile 比 Nginx 配置更易读。
  3. 零依赖:单一二进制文件,无需额外安装模块。

常见问题

  • 权限问题:确保 Caddy 用户(如 www-data)有权限访问网站目录。
  • 端口冲突:关闭 Nginx/Apache 后再启动 Caddy(默认监听 80/443)。
  • 自定义证书:使用 tls /path/cert.pem /path/key.pem 指定证书。

通过以上步骤,你可以快速部署 Caddy 替代 Nginx。更多功能参考 官方文档