安装 Caddy
# 查看是否安装 dnf
$ dnf --version
# 安装 dnf 前置依赖 epel
$ yum install epel-release -y
# 安装 dnf
$ yum install dnf -y
# 安装 caddy,过程中的询问全部同意(y)
$ dnf install 'dnf-command(copr)'
$ dnf copr enable @caddy/caddy
$ dnf install caddy
解决……OptionBinding with id “failovermethod” does not exist
# 备份 yum.repos.d
$ cd /
$ tar zcf ~/yum.repos.d.tar.gz etc/yum.repos.d
# 清除无效源文件
$ cd /etc/yum.repos.d
$ rm -rf CentOS-*.rpmsave
# 注释 CentOS-Epel.repo 文件中的 failovermethod=priority
$ vim CentOS-Epel.repo
配置 Caddy
获取 DNSPod Token
# 添加 DNSPod 模块
$ sudo caddy add-package github.com/caddy-dns/dnspod
进入 DNSPod 控制台,点击右上角头像 - API 密钥,新建一个 DNSPod Token,用于管理 DNSPod 资源。
创建 Caddy 配置文件
在自定义目录创建 Caddyfile 文件内容如下:
xxx.com, www.xxx.com {
# gzip 压缩
encode zstd gzip
# 根据 DNSPod Token 创建证书(验证域名是否属于你)
tls {
dns dnspod id,token……
}
# 配置 301 重定向,访问顶级域名时自动跳转到二级域名
redir 301 {
if {host} is xxx.com
/ https://blog.{host}{uri}
}
}
blog.xxx.com, www.blog.xxx.com {
# gzip 压缩
encode zstd gzip
# / 路径反代到 Halo
reverse_proxy 127.0.0.1:8090
}
启动 Caddy
# 将 Caddyfile 转换为 JSON 配置文件
# $ caddy adapt
# 将打印的内容保存为 caddy.json
# $ vim caddy.json
# 运行 Caddy
$ sudo nohup caddy run --environ --config /opt/caddy/Caddyfile > /dev/null &
解决 failed to sufficiently increase receive buffer size
UDP 接收缓冲区大小・lucas-clemente/quic-go Wiki
评论区