Caddy服务器
Caddy 是一款基于 Go 语言编写的高性能 Web 服务器。它以极简的配置和 原生支持自动 HTTPS 而闻名。无论是作为静态资源服务器还是反向代理,Caddy 都能在几秒钟内完成部署并自动申请证书。
2. 安装部署
Section titled “2. 安装部署”2.1. 系统软件包安装 (RHEL/CentOS)
Section titled “2.1. 系统软件包安装 (RHEL/CentOS)”yum install yum-plugin-copryum copr enable @caddy/caddyyum install caddy2.2. 使用 Xcaddy 手动编译 (含插件)
Section titled “2.2. 使用 Xcaddy 手动编译 (含插件)”如果你需要添加特定插件(如前置代理),推荐使用 xcaddy 进行构建。需预装 Go v1.20+。
-
安装 xcaddy:
Terminal window go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest -
编译构建:
Terminal window # 编译带有 output 标志的 caddy 二进制文件~/go/bin/xcaddy build --with [插件名称] --output caddy
3. Caddyfile 配置实战
Section titled “3. Caddyfile 配置实战”Caddy 的配置文件 Caddyfile 结构清晰且语义化。
3.1. 基础反向代理与静态文件
Section titled “3.1. 基础反向代理与静态文件”{ 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 }}3.2. WebSocket 代理配置
Section titled “3.2. WebSocket 代理配置”:1009 { tls /certs/fullchain.pem /certs/privkey.pem
@websockets { header Connection *Upgrade* header Upgrade websocket }
reverse_proxy @websockets localhost:8838}3.3. 前置代理 (Forward Proxy)
Section titled “3.3. 前置代理 (Forward Proxy)”需安装 forwardproxy 插件:
example.com { forward_proxy { basic_auth username password hide_ip probe_resistance } file_server}4. 运行管理
Section titled “4. 运行管理”# 以前台模式运行caddy run --config /path/to/Caddyfile
# 重载配置 (平滑重载)caddy reload --config /path/to/Caddyfile