通过Notion查看本文 本文同步发布在j000e.com

<!-- index-menu -->

前言

本文将记录如何使用Cloudflare Workers反向代理API服务,不需要服务器(serverless)且免费。

主要目的是隐藏真实API URL,即对用户隐藏了真实API服务提供者,用户只管使用服务就好,无需知道使用的谁家的服务和API,某种程度上讲做起了API「二房东」。

好处是如果有许多服务使用同一个API,那么更换API URL时需要每个服务都手动更换,很麻烦。相比之下,若这些服务都使用同一个API URL,那么在更换API服务商时,只需要更改反代的信息即可,若KEY变化则服务中只需替换KEY。

最好已经有托管在Cloudflare的域名。使用默认xxx.workers.dev也可,只不过可能被大陆墙掉。

API是什么?

API是应用程序编程接口(Application Programming Interface)的缩写。它是一组定义了软件组件之间交互方式的规范,允许不同的应用程序之间进行数据交换和通信。API通常由一系列的函数、协议、工具和数据结构组成,可以让开发者在不了解内部实现细节的情况下,通过开放的接口进行软件开发、集成和扩展。API可以用于各种应用程序,包括移动应用、Web应用、桌面应用、操作系统等。

创建Cloudflare Workers

在Cloudflare中左侧菜单栏中找到并点击Workers,点击创建服务。

Untitled

命名该服务如apixxx,选择HTTP处理程序即可。

「扩展」Cloudflare Workers中的HTTP处理程序和HTTP路由器有什么区别?

Untitled

创建完成后点进该服务,然后点击快速编辑。

Untitled

将以下代码粘贴进去(删除默认初始代码),修改要代理的域名,然后点击保存并部署

addEventListener(
  "fetch",event => {
     let url=new URL(event.request.url);
     url.hostname="abc.def.xyz"; // 修改成自己的节点IP/域名
     url.protocol='https'; // 如为http协议请修改为http
     let request=new Request(url,event.request);
     event. respondWith(
       fetch(request)
     )
  }
)

Untitled