个人开发者如何用Cloudflare Workers搭建免费API网关?

2026-05-09

老铁们,今天跟大伙儿聊聊一个特别实在的话题——API网关。你可能会说:“哎呀,那玩意儿不是大厂才用的吗?又是Nginx又是Kong的,配置起来头都大了。”没错,以前确实是这么回事儿,但自从Cloudflare Workers出来之后,咱个人开发者也能白嫖一个高性能的API网关,而且基本不用花一分钱。

先给新手科普一下啥叫API网关。你就想象成你家小区门口那个保安亭。所有访客(请求)进小区都得先经过保安,保安负责登记、检查是不是坏人、告诉你在哪栋楼。API网关干的就是这事儿——它站在所有后端API前面,统一处理认证、限流、日志、转发等等脏活累活。没有它,你就得在每个服务里重复写这些代码,累死个人。

为什么是Cloudflare Workers?

Workers这玩意儿,说白了就是一个“全球各地都有点的轻量级JS运行环境”。你写一小段JavaScript代码,上传到Cloudflare,它就能在离用户最近的服务器上跑。免费额度是多少?每天10万次请求,够你个人项目、小工具、甚至给朋友用的API托管了。

更关键的是,Workers天然就是网关的料。因为它可以拦截任何发到你域名下的请求,你想怎么改头换面都行:改个头(Header)、换个路径、加个验证、甚至把多个API拼成一个返回。而且全程免费,比买个VPS自己搭Nginx划算太多了,还不用操心运维。

直接上干货:三步搭好API网关

第一步:注册Cloudflare并添加域名

你要有一个域名(几块钱不贵),解析到Cloudflare。这一步不难,跟着官网引导把DNS换成Cloudflare的就行。如果你暂时没有域名,也可以用workers.dev提供的子域名先玩起来。

第二步:创建Worker并写一点JavaScript

登录Cloudflare Dashboard,找到Workers & Pages,点“创建应用程序”,选“创建Worker”。你会看到一个在线编辑器,把下面的代码贴进去:

export default {
  async fetch(request, env, ctx) {
    const url = new URL(request.url);
    const path = url.pathname;

    // 判断不同路径,转发到不同后端
    if (path.startsWith('/weather')) {
      // 假想的天气API,只改路径,保留原始参数
      return fetch('https://api.openweathermap.org/data/2.5/weather' + url.search, {
        headers: { 'X-API-Key': '你的KEY' } // 在网关层统一加key,后端不用暴露
      });
    } else if (path.startsWith('/news')) {
      // 再拼接一个新闻API
      return fetch('https://newsapi.org/v2/top-headlines' + url.search);
    } else {
      return new Response('Hello from API Gateway!', { status: 200 });
    }
  }
};

你看,关键就是 fetch 函数——它可以直接向任意后端发请求,并原样把结果返回给调用方。你可以在中间做任何修改:加认证头、改请求方法、缓存结果、甚至动态拼接多个接口的数据。

第三步:添加路由,指定域名触发

回到Workers的“触发器”选项卡,添加一个路由。比如你的域名是 api.example.com,路由写 api.example.com/*,这样所有到 api.example.com 的请求都会走你这个Worker。保存,等几十秒生效。

真实场景案例:我自己的一个用法

之前我写了个小程序,需要同时用百度翻译和语音识别两个付费API。每个API都要传秘钥,我怕秘钥泄露到前端,就用Worker做了个网关:

整个过程没碰一行后端代码,只用了一个Worker。免费额度绰绰有余,每天不到一千次请求。

还能干什么?

除了简单的转发和认证,Workers还能做:

注意几个坑

  1. 免费额度每天10万次请求,超出后会被限速。个人项目一般没事,如果万一超了,可以升级付费(但既然我们说的是免费方案,建议控制好频率)。
  2. Workers的代码地域有限制,免费用户只能部署在全球节点,没有中国内地节点。所以如果你的用户主要在国内,访问可能慢一些。但做个人小工具或者海外项目完全OK。
  3. 尽量不要在Worker里做太重的逻辑,比如大图片处理或者长时间数据库查询——它适合轻量级“管道”任务。

总结

Cloudflare Workers让个人开发者也能拥有企业级API网关的能力,而且几乎是零成本。你不需要懂Nginx,不需要买服务器,只需要会一点JavaScript,就能做出一个功能完整的网关。

如果你的需求更复杂(比如需要图形化配置、流量监控、多环境管理),那还是得上专业API网关方案。不过对于咱大多数做个小工具、接个第三方接口的人来说,Workers绝对是性价比之王。


好了,今天就聊到这儿。如果你对API网关还有其他玩法感兴趣,想看看更多实际落地的方案,可以访问 itfangan.com,上面有很多精选的IT解决方案和实战案例,说不定就有你需要的。祝各位码到成功,零bug!