利用 Cloudfare Worker 来代理请求的地址

·
次浏览
AI 摘要生成中

刚刚给「随笔」的页面增加了展示豆瓣影音的卡片,从 NeoDB API 获取数据,但是手机上没开代理浏览时发现无法获取到数据,想起来之前在某位大佬的博客中看到过利用 Cloudfare Worker 来代理请求的地址,所以就尝试了一下,发现确实好用。

创建 Worker

首先进入 Cloudfare 的官网,然后点击左侧的 Workers,然后点击 创建 按钮。

创建完 worker 后,编辑并粘贴下方的代码,然后点击「部署」。

worker.js
export default { async fetch(request, env) { const url = new URL(request.url); url.host = 'neodb.social'; // 检查请求的来源 const origin = request.headers.get('Origin') || request.headers.get('Referer'); if (!origin || !origin.includes('kirbyrun.com')) { return new Response('Unauthorized', { status: 403 }); } return fetch(new Request(url, request)); } }
worker.js
export default { async fetch(request, env) { const url = new URL(request.url); url.host = 'neodb.social'; // 检查请求的来源 const origin = request.headers.get('Origin') || request.headers.get('Referer'); if (!origin || !origin.includes('kirbyrun.com')) { return new Response('Unauthorized', { status: 403 }); } return fetch(new Request(url, request)); } }

部署后,回到“设置”,在「域和路由」这里点击「添加」,选择「路由」。区域选择你的域名,路由设置为 neodb.kirbyrun.com/*

增加 DNS 记录

在你的域名 DNS 里添加 2 条 A 记录。

类型名称备注
Aneodb104.18.2.161仅 DNS
Aneodb104.18.3.161仅 DNS

使用 Cloudflare 代理地址来请求

原始请求地址是 https://neodb.social/api/${type}/${id},现在可以使用 https://neodb.kirbyrun.com/api/${type}/${id} 来请求数据了。

举一反三,你还将可以用来代理其他被墙的地址。