Hugo博客公告弹窗

Caddy 性能优化:添加缓存插件的编译与配置

一键脚本

无需编译,直接使用已经编译好的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
CC BY-NC-SA 4.0 转载请注明
最后更新于 2025-10-28 03:27
clarity统计