背景
在 8 月 2 日,我抢到了一个 Hax 的免费 VPS,但是因为不确定要拿来干什么,因此在装完warp并弄完 OpenFRP 反代 ssh(使得可以通过纯 IPv4 网络登录 ssh)后,就一直让它在那儿闲着(当然续期还是要做的)。近期在某处刷到一个推荐用 Caddy 反代的帖子,出于对这东西的好奇(之前没听说过),又突然有了折腾的动力。
开始折腾
安装 Caddy
我装的是 Ubuntu 系统,所以可以用官方给出的以下命令进行安装:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
Debian 系统也可以使用以上命令安装 Caddy 。而对于其他系统,官方也有相应的安装说明。
参见:https://caddy2.dengxiaolong.com/docs/install (中文文档)以及 https://caddyserver.com/docs/install (官方英文文档)
编写配置文件(Caddyfile)
用任意代码编辑器打开 VPS 上 Caddyfile 文件(对于 Debian/Ubuntu 其路径是 /etc/caddy/Caddyfile),在最后面追加:
github.example.com {
tls xxx@example.com
reverse_proxy https://github.com {
header_up Host {upstream_hostport}
header_up X-Forwarded-Host {host}
}
其中 github.example.com
换为你的域名,xxx@example.com
换为你的邮箱地址。
配置 CDN & 重启 Caddy
然后,因为 Hax 的 VPS 只有 IPv6 入口,因此要想让纯 IPv4 网络下的设备也能访问镜像站,必须设置一个支持 IPv6 地址的 CDN。这里我用的是“赛博菩萨” CloudFlare 的 CDN,注意 SSL 加密模式选择“完全”。
配置好 CDN 后,回到终端,执行 systemctl reload caddy
重启 Caddy。一段时间后,打开反代网站,不出意外的话应该能显示 GitHub 的页面了,也能通过 git 克隆仓库了。
结尾
因为我只反代了GitHub的主域名,没有反代 CSS、JavaScript 、图片等资源,所以有可能会出现页面加载时间过长、图片显示不出来等问题,并且下载 release [里的文件和源代码压缩包仍然用的是官方的不稳定链接,因此下一节将对这些东西进行反代,进一步提升访问体验。