使用Cloudflare Workers搭建高速的Gravatar镜像
前言
最近使用 Wordpress 时发现一个问题,登录后台时自己的头像加载不出来,f12 显示 Gravatar 头像超时,遂决定写一个 Gravatar 镜像的 Workers 脚本并出一期部署教程
如果你还不会用 Cloudflare Workers,请参考以下教程注册 Cloudflare 账号并更改 ns 至 cloudflare, 再回来继续看这篇文章🥺
注册 Cloudflare 账号,迁移域名,开始使用 Workers
教程链接:
开始部署
打开Cloudflare Dashboard,点开菜单,点击 ”Workers 和 Pages”
进入之后点击 ”创建应用程序”>” 创建 Worker”。
到这步名字随便取,点击部署。
Bingo,部署完成
然后点击 ”编辑代码”,将下面代码复制进去:
//Gravatar Mirror Workers By IcyMichiko(https://icymichiko.cn)允许转载
//本 js 极大简化了网上的反代脚本并添加了防盗链,但由于没有内容替换不适用于反代正常网页
addEventListener(‘fetch’, event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const targetUrl = ‘https://www.gravatar.com/avatar’;
const referer = request.headers.get(‘Referer’);
// 防盗链设置,请将域名改为你自己的域名,若不需要请从这里开始删除
if (!referer !referer.includes(‘ys.mihoyo.com’)) {
return new Response(‘Forbidden’, { status: 403 });
}
//不需要防盗链从上面开始删除代码这里结束
const url = new URL(request.url);
const target = new URL(targetUrl + url.pathname);
target.search = url.search;
const response = await fetch(target, {
method: request.method,
headers: request.headers,
});
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: response.headers,
});
}
如果你不需要防盗链记得删掉那部分,需要防盗链的别忘了改
如果你有多个域名需要防盗链,请将防盗链的部分代码替换为以下部分,两个以上域名以此类推:
if (!referer (!referer.includes(‘616.sb’) && !referer.includes(‘arcaea.lowiro.com’))) {
//别忘了替换域名
然后保存,部署完成🥳🥳🥳
等等… 还没完…
由于 Cloudflare 默认的 workers.dev 子域被阻断,所以需要绑定自己的域名过去
进入此 Workers 的仪表板
点击 ”触发器”>” 添加自定义域”,并输入你想要作为 Gravatar 镜像的自定义域名
完成后点击添加自定义域,大功告成,现在访问添加的那个网址会发现 Gravatar 可以正常运行了。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
使用Cloudflare Workers搭建高速的Gravatar镜像
https://blog.icybit.cn/posts/9- 作者
- IcyMichiko
- 发布于
- 2023-12-09
- 许可协议
- CC BY-NC-SA 4.0
评论