一键脚本
无需编译,直接使用已经编译好的caddy替换掉原版caddy,前提是要先安装原版caddy
curl -fsSL https://raw.githubusercontent.com/woniu336/open_shell/main/caddy-cache.sh | bash
安装原版caddy
重要:避免后续出现什么意外,请先安装原版caddy,推荐使用我的一键安装脚本
curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/caddy_manager.sh && chmod +x caddy_manager.sh && ./caddy_manager.sh
安装 Go
wget https://go.dev/dl/go1.23.2.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz
配置环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
验证安装
go version
安装 xcaddy
xcaddy 是 Caddy 的官方构建工具,用于编译带有自定义插件的 Caddy 版本。 让你把第三方模块(如缓存插件)编译进 Caddy 二进制文件中。
使用 Go 安装(推荐)
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
添加 Go bin 目录到 PATH
echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc
验证安装
xcaddy version
编译带缓存插件的 Caddy
创建构建目录
mkdir -p ~/caddy-build
cd ~/caddy-build
编译 Caddy(包含缓存插件)
xcaddy build \
--with github.com/caddyserver/cache-handler
编译需要 3-5 分钟,请耐心等待,成功后会在当前目录生成 caddy 二进制文件
验证编译结果
ls -lh caddy
应该看到一个约 40-50MB 的文件
验证缓存插件
./caddy list-modules | grep cache
应该看到:cache 和 http.handlers.cache
安装 Caddy 到系统
停止旧的 Caddy 服务
cd ~
sudo systemctl stop caddy 2>/dev/null || true
替换原版caddy
cd ~
sudo mv ~/caddy-build/caddy /usr/bin/caddy
sudo chmod +x /usr/bin/caddy
sudo chown root:root /usr/bin/caddy
验证安装
caddy version
caddy list-modules | grep cache
修改配置
nano /etc/caddy/Caddyfile
添加cache 参数,例如
blog.xxx.com {
cache {
ttl 1h
}
reverse_proxy 127.0.0.1:80
}
ttl 1h 表示缓存1小时
f12查看页面,首次不缓存,刷新一下即可缓存,你会看到类似信息
Souin; hit; ttl=3600; key=GET-https-www.xxx.com-/xxxx/xxxx/30321/; detail=DEFAULT
常用命令
# 1. 验证配置文件语法
sudo caddy validate --config /etc/caddy/Caddyfile
# 2. 启用服务开机自启
sudo systemctl enable caddy
# 3. 启动 Caddy 服务
sudo systemctl start caddy
# 4. 检查服务状态
sudo systemctl status caddy
# 5. 查看实时日志
sudo journalctl -u caddy -f