Caddy部署与快速入门
Caddy 是一个基于 Go 语言的 web 服务器,支持HTTP/2、HTTP/3、自动HTTPS、ZSTD压缩等特性。它可以作为轻量级的反向代理、负载均衡器和 HTTP 服务器。本教程将介绍如何上手Caddy。
引入
Caddy 是一个强大的、可扩展的平台,用于为您的网站、服务和应用程序提供服务,用 Go 编写。如果您是 Caddy 的新手,那么您提供 Web 服务的方式即将发生变化。
配置速览
Caddy 的配置文件是用 Caddyfile 编写的。Caddyfile 是一个简单的文本文件,其中包含指令以定义网站、服务和应用程序。下面是一个简单的 Caddyfile 配置示例:
- 反向代理
:80 {
reverse_proxy localhost:8080
}
- 静态网页/文件
:80 {
root /var/www/html
file_server
}
从上面的配置中,我们可以看到 Caddy 的配置非常简单, 使用极短的配置即可达到目的。
安装
此处选用
WJQSERVER-STUDIO/caddy
作为演示。演示环境的内核与架构为Linux/AMD64
,发行版为Debian 12
。
下载并解压
下载Caddy压缩包
wget -O caddy.tar.gz https://github.com/WJQSERVER-STUDIO/caddy/releases/download/daily/caddy-linux-amd64.tar.gz
解压压缩包至指定目录
tar -zxvf caddy.tar.gz -C /root/data/caddy
配置systemd服务
- 创建caddy.service文件
cat > /etc/systemd/system/caddy.service << EOF
[Unit]
Description=Caddy HTTP/2 web server
Documentation=https://caddyserver.com/docs
After=network-online.target
Wants=network-online.target
[Service]
User=root
Group=root
ExecStart=/root/data/caddy/caddy run --config /root/data/caddy/Caddyfile
ExecReload=/bin/kill -USR1 $MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
EOF
- 启动服务
systemctl start caddy
- 开机自启
systemctl enable caddy
- 验证服务状态
systemctl status caddy