logo
Caddy:现代化的 Web 服务器

Caddy 基础配置

本文将介绍 Caddy 的基础配置方法和常用指令。

Caddyfile 基础语法

Caddyfile 是 Caddy 的主要配置文件,采用简单直观的语法。

基本结构

domain.com {
    directive arg1 arg2
}

全局选项

{
    email admin@example.com
    admin off  # 关闭管理API
    default_sni example.com
}

常用配置示例

1. 静态文件服务器

example.com {
    root * /var/www/html
    file_server
    encode gzip
}

2. 反向代理

api.example.com {
    reverse_proxy localhost:8080 {
        header_up Host {upstream_hostport}
        health_check /health
        lb_policy round_robin
    }
}

3. PHP 应用

php.example.com {
    root * /var/www/php
    php_fastcgi localhost:9000
    file_server
}

4. 多站点配置

site1.example.com {
    root * /var/www/site1
    file_server
}

site2.example.com {
    root * /var/www/site2
    file_server
}

常用指令说明

root

设置站点根目录:

root * /path/to/site

file_server

启用静态文件服务:

file_server [browse]  # browse 参数启用目录浏览

log

配置访问日志:

log {
    output file /var/log/caddy/access.log
    format json
}

tls

配置 TLS 选项:

tls {
    protocols tls1.2 tls1.3
    ciphers TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
}

配置验证

在应用配置前,可以使用以下命令验证配置文件的正确性:

caddy validate --config /path/to/Caddyfile

重载配置

修改配置后,可以通过以下方式重载配置:

# 方式1:使用 caddy reload 命令
caddy reload --config /path/to/Caddyfile

# 方式2:发送 SIGUSR1 信号
kill -USR1 $(pgrep caddy)