使用 CloudFlare Workers 免费搭建 Virtual Judge 反代
最近闲的没事干,受 如何科学地制作一个镜像反代站点 这篇文章的启发,我一个买不起服务器的穷逼准备用 CF Workers 搭一个 Virtual Judge 反代,以缓解 VJ 在大陆经常断网的情况。而且 CF Workers 有更高的 SLA 保证,如果运气好,访问速度还会嘎嘎快。
千万不要反代
反 D、色情、赌博等 违规网站,小心你家水表坏了。
注册 CF
这个就不用我浪费口水了,传送门 -> https://dash.cloudflare.com/
创建 CF Worker
这一步需要先把域名绑到 CF 里面,因为
*.workers.dev
有墙。
可以到 Freenom 那里搞一个免费域名.
登录 Cloudflare Dashboard,点击右边的 Workers,再点右边的创建服务。
服务名称随便,点击创建服务。
绑定自定义域。
触发器 > 自定义域,在这里输入 Worker 要绑的域名。
点击快速编辑。
粘贴以下代码,然后保存并部署:
export default {
async fetch(request, env, ctx) {
let u = new URL(request.url);
const originHost = "vjudge.net",
mirrorHost = u.hostname;
u.hostname = originHost;
Object.defineProperty(request, "url", {
value: u,
writable: true,
});
let resp = await fetch(u, request);
if (resp.headers.get("content-type").includes("text/")) {
let body = await resp.text();
body.replace(new RegExp(originHost, "g"), mirrorHost);
return new Response(body, resp);
}
return resp;
},
};
接下来,访问你绑定的域名。
登录镜像站
由于 CF Workers 不让改 set-cookie
请求头,你需要花很大力气登录 vjudge.net
,然后把 cookies 复制到镜像站里。
打开 https://vjudge.net,登录后打开开发者工具 > 应用 > cookie > https://vjudge.net
。
再打开 https://你绑定的域名,登录后打开开发者工具 > 应用 > cookie > https://你绑定的域名
,将两个 JSESSIONID
复制粘贴过去,然后刷新镜像站,就可以完成登录。
最后,尽情享受吧~
Demo:https://vjmirror.workers.dsy4567.cf/

如无特别说明,本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
发表于: 2023/5/20 22:57:26, 更新于: 2023/5/21 11:19:53标签: 技术 CloudFlare