之前介绍了通过修改电脑里的 hosts来提高访问github的速度的教程,今天我们继续分享,通过cloudflare的workers来实现反向代理,访问github。
要实现在国内利用workers访问github。那么前提条件就是你有一个cloudflare账号以及一个域名。关于什么是cloudflare,这里简单说一下 : Cloudflare 是一家广受认可的公司,在互联网行业中享有良好声誉。他们的服务被许多大型企业和网站使用,以提供网络安全防护、DDoS 攻击防御和性能优化等功能,也是目前还提供免费cdn的良心厂商之一。简称 赛博大活佛。那么话不多说,我们直接开始今天的教程。
-
登录自己的cf账号,且将你的域名,托管到 CF 。这一步很重要 。将域名托管到CF的方法也很简单,我们只要去对应的域名厂商,把name server服务器改成 cf的就行。如下图。当然要注意的是CF的name server服务器并不是只有以下2个。得看你添加站点的时候的页面提示是哪2个。 这一步完成之后,我们就可以看后续的步骤。
Cloudflare 名称服务器 Cloudflare 上的每个 DNS 区域都会被分配一组 Cloudflare 品牌名称服务器。 类型 值 NS bowen.ns.cloudflare.com NS leia.ns.cloudflare.com
-
点击左侧菜单栏的 Workers 和 Pages
-
点击概述 – 创建 – 创建worker ,然后名字 和代码不用管。我们先直接点击部署。当然,你也可以起你想要的名字,不过这个并不太重要。
-
部署成功后,页面会提示部署成功。然后此时我们再点击编辑代码。
-
在代码输入框里,我们将以下代码复制。复制后,点击右上角的 部署。部署最新的代码即可。 代码如下;
export default {
async fetch(request, env) {
const _url = new URL(request.url);
const hostname = _url.hostname
_url.hostname = "github.com"
const req = new Request(_url, request);
req.headers.set('origin', 'https://github.com');
const res = await fetch(req);
let newres = new Response(res.body, res);
let location = newres.headers.get('location');
if (location !== null && location !== "") {
location = location.replace('://github.com', '://'+hostname);
newres.headers.set('location', location);
}
return newres
},
};
-
到这一步,我们已经完成了50%了。此时如果你有科技的力量。那么已经可以通过cf分配的域名访问该站点了,如果是国内网络那么由于DNS污染,还是无法访问该站点的。此时我们就需要添加我们自己的域名,从而实现访问了。
-
然后我们点击 设置 – 触发器 -添加自定义域名,然后保存
-
将域名托管到CF的好处是,我们无需先新建一个域名记录,在worker这里直接输入自定义域名,就可以自动帮我们创建好了。如下图,输入自己的期望域名后,点击保存即可
-
保存之后,1分钟之内的时间,CF就会帮我们设置好记录以及开启HTTPS。然后我们访问我们的自定义域名,大功告成!!!。
创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。千万要注意,我们搭建好的站点尽量我们自己小范围学习使用,如果有滥用情况,cf可是会有概率封号的。