👨🏻💻 利用 Cloudflare worker来畅游github
本文最后更新于 2024-10-14,文章内容距离发布已经超过7日。
今天我们分享,通过cloudflare的workers来实现反向代理,访问github。
要实现在国内利用workers访问github。那么前提条件就是你有一个cloudflare账号以及一个域名。关于什么是cloudflare,这里简单说一下 : Cloudflare 是一家广受认可的公司,在互联网行业中享有良好声誉。他们的服务被许多大型企业和网站使用,以提供网络安全防护、DDoS 攻击防御和性能优化等功能,也是目前还提供免费cdn的良心厂商之一。简称 赛博大活佛。那么话不多说,我们直接开始今天的教程。
登录自己的cf账号,且将你的域名,托管到 CF 。这一步很重要 。将域名托管到CF的方法也很简单,我们只要去对应的域名厂商,把name server服务器改成 cf的就行。如下图。当然要注意的是CF的name server服务器并不是只有以下2个。得看你添加站点的时候的页面提示是哪2个。这一步完成之后,我们就可以看后续的步骤。(网上也有详细的将域名托管到CF教程)
plain
Cloudflare 名称服务器
Cloudflare 上的每个 DNS 区域都会被分配一组 Cloudflare 品牌名称服务器。
类型 值
NS bowen.ns.cloudflare.com
NS leia.ns.cloudflare.com
点击左侧菜单栏的 Workers 和 Pages
点击概述 - 创建 - 创建worker ,然后名字 和代码不用管。我们先直接点击部署。当然,你也可以起你想要的名字,不过这个并不太重要。
部署成功后,页面会提示部署成功。然后此时我们再点击编辑代码。
在代码输入框里,我们将以下代码复制。复制后,点击右上角的 部署。部署最新的代码即可。代码如下;
javascript
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。然后我们访问我们的自定义域名,大功告成!!!