方案的核心原理是利用 Cloudflare Workers 的边缘计算能力与 KV 存储的全球可访问性,构建一个“抓取-缓存-读取”的间接链路,从而规避网络封锁。
- Worker 抓取:绕开封锁
部署位置:Worker 脚本运行在 Cloudflare 的边缘节点上。这些节点遍布全球,用户可以指定代码在特定地区(如美国)的节点上执行。
抓取行为:Worker 直接向 usatoday.com 发起 HTTP 请求。由于该请求发自境外节点,且 Cloudflare 边缘网络本身不被封锁,所以能够正常获取内容,不受国内网络访问限制策略的影响。
- KV 存储:中间缓存
KV 命名空间:Worker 获取到 USA Today 的响应后,通过 Cloudflare Workers KV API 将数据写入一个 KV 命名空间(键值对存储)。KV 是 Cloudflare 提供的全球分布式、低延迟的持久化存储。
数据格式:可以存储 HTML、JSON、纯文本等任意内容,并设置 TTL(生存时间)以实现自动过期更新。
- 服务器读取:通过公网 API
访问路径:服务器不再直接访问被封锁的 USA Today,也不再调用可能被屏蔽的 workers.dev 子域名。而是通过 Cloudflare 公开的 REST API 读取 KV 中的内容。
整体数据流
USA Today (被墙)
↓ 境外节点发起请求
Cloudflare Worker (边缘执行)
↓ 调用内部 KV API
Cloudflare KV (全球存储)
↓ 服务器发起 HTTPS 请求到 api.cloudflare.com
你的服务器(国内/任何位置)方案优势与要点
解耦:Worker 负责“取”,服务器负责“读”,两者通过 KV 异步衔接,降低实时依赖。
无需暴露 Worker 路由:服务器不访问 Worker 的 HTTP 触发端点(*.workers.dev 或自定义域名),避免了该端点被封锁的风险。
API 稳定:api.cloudflare.com 是控制面入口,通常不会被误伤封锁;且 KV 读取可以配置细粒度的 API Token,安全性高。
可扩展:可缓存多个来源、多个键值,服务器只需按需读取即可。
潜在注意事项
KV 读取计费:注意 Cloudflare KV 的读请求配额和计费规则(免费计划每日读次数有限)。
数据新鲜度:Worker 需定期抓取更新 KV(如通过 Cron 触发器),或使用 TTL + 被动更新策略。
API 延迟:服务器每次读取需发起一次 HTTPS 请求到 api.cloudflare.com,相比直接读取 KV 边缘节点会有额外网络往返,但通常可接受。
该方案本质上是利用 Cloudflare 的边缘网络作为“跳板”,以 KV 作为数据交换中介,从而在不直接访问被禁域名或 Worker 路由的前提下,让国内服务器安全地获取境外内容。
评论