Cloudflare Workers 加速网站

Cloudflare Workers 是 Cloudflare 的一个 Severless 平台,开发者写好代码推送上去,然后通过 HTTP 请求或者计划任务触发执行代码;代码执行的时候可以自行返回内容,也可以请求其他网站,对网站的内容进行更改或者缓存。由于 Cloudflare 本身是一个 CDN,有多达 200 个以上的数据中心,所以在全球各个地区的访问速度都很快。

 

注册 Cloudflare 账号


在开始之前先去注册 Cloudflare Workers 账号或者登录。跟 Cloudflare CDN 不同,使用 Workers 并不需要你拥有自己的域名。

登录之后在右上角有个选项选择语言为简体中文。如果是第一次登录需要设置子域名,随便填一个自己喜欢的。然后选择套餐,用免费的即可。最后验证邮箱。

 

给网站加速


这是最常见的一种,也是最简单的。如果你的网站离你的目标用户太远,或者是有些资源需要经过特殊的技术才能访问到。比如之前提过的用网盘做图床 Dropbox 或者 Google Drive 图片外链,在正常情况下是无法访问的,但是用这个方法就可以轻松解决。

另外 Worker 还支持转发 WebSocket 请求,比如用来加速 Heroku 的 Socks5 代理,又或者是 IBM Cloud 的 Socks5 代理

 

创建 Worker


登录后在后台点击创建 Worker;在编辑代码的页面,先删除初始代码,然后复制粘贴以下代码:

var host = "HOST";

addEventListener("fetch", (event) => {
  event.respondWith(
    handleRequest(event.request).catch(
      (err) => new Response(err.stack, { status: 500 })
    )
  );
});

async function handleRequest(request) {
  const url = new URL(request.url);
  const newURL = new URL(host + url.pathname + url.search);
  const newRequest = new Request(newURL, request);
  return await fetch(newRequest);
}

 

修改上面代码的 HOST 成你要加速的网站,比如 Dropbox 的外链网站 https://dl.dropboxusercontent.com。最后点击保存并部署,类似下图:

部署 Worker 代码

 

测试 Worker 是否部署成功,比如 Dropbox 的外链为:

https://dl.dropboxusercontent.com/s/gjf0ab34u9tupik/Benedict_Cumberbatch_2011.png

修改链接的域名为我的 Worker URL 后,即:

https://delicate-limit-cc31.j217rp.workers.dev/s/gjf0ab34u9tupik/Benedict_Cumberbatch_2011.png

 

经过 Worker 转发的 Dropbox 外链图片:

(由于 workers.dev 及其子域名被封,你可能看不到以下图片)

用 Worker 加速图片