跳转到内容

Caddy服务器

Caddy 是一款基于 Go 语言编写的高性能 Web 服务器。它以极简的配置和 原生支持自动 HTTPS 而闻名。无论是作为静态资源服务器还是反向代理,Caddy 都能在几秒钟内完成部署并自动申请证书。


Terminal window
yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy

2.2. 使用 Xcaddy 手动编译 (含插件)

Section titled “2.2. 使用 Xcaddy 手动编译 (含插件)”

如果你需要添加特定插件(如前置代理),推荐使用 xcaddy 进行构建。需预装 Go v1.20+。

  1. 安装 xcaddy

    Terminal window
    go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
  2. 编译构建

    Terminal window
    # 编译带有 output 标志的 caddy 二进制文件
    ~/go/bin/xcaddy build --with [插件名称] --output caddy

Caddy 的配置文件 Caddyfile 结构清晰且语义化。

{
https_port 10443 # 自定义 HTTPS 端口
}
example.com {
# 指定自定义 TLS 证书
tls /certs/fullchain.pem /certs/privkey.pem
# 静态文件服务
handle /static/* {
uri strip_prefix /static
file_server {
root /var/www/static
}
}
# 反向代理至后端服务
handle {
reverse_proxy localhost:8080
}
}
:1009 {
tls /certs/fullchain.pem /certs/privkey.pem
@websockets {
header Connection *Upgrade*
header Upgrade websocket
}
reverse_proxy @websockets localhost:8838
}

需安装 forwardproxy 插件:

example.com {
forward_proxy {
basic_auth username password
hide_ip
probe_resistance
}
file_server
}

Terminal window
# 以前台模式运行
caddy run --config /path/to/Caddyfile
# 重载配置 (平滑重载)
caddy reload --config /path/to/Caddyfile