使用 CloudFlare Workers 免费搭建 Virtual Judge 反代
使用 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/
文章来源:
Author:dsy4567
link:https://dsy4567.github.io/blog/cf-vjmirror/