深度解析:Cloudflare 核心组件 —— Pages, Workers, Routes 与 SaaS

深度解析:Cloudflare 核心组件 —— Pages, Workers, Routes 与 SaaS

在构建现代 Web 应用和边缘架构时,Cloudflare 已经不仅仅是一个 CDN,它提供了一整套 Serverless(无服务器)基础设施。很多开发者在使用时容易混淆 PagesWorkersWorker RoutesCloudflare for SaaS 的作用。

本文将逐一拆解这四个概念,帮助你理解它们的定义、用途以及它们是如何协同工作的。


1. Cloudflare Pages:现代静态网站托管

一句话定义:一个专注于前端开发者的 JAMstack 托管平台,集成了 CI/CD(持续集成/持续部署)。

核心功能

Cloudflare Pages 本质上是一个存储和分发静态资源(HTML, CSS, JS, 图片)的服务。

  • Git 集成:它可以直接连接 GitHub 或 GitLab。当你推送代码时,Cloudflare 自动拉取代码、执行构建命令(如 npm run build),并将生成的静态文件部署到全球边缘网络。
  • 全球 CDN:部署后的网站自动享受 Cloudflare 的全球 Anycast 网络,速度极快。
  • 预览环境:每次提交代码都会生成一个独立的预览链接,方便测试。

适用场景

  • 个人博客(Hugo, Hexo)。
  • 单页应用(React, Vue, Angular 打包后的文件)。
  • 文档站点。

2. Cloudflare Workers:可编程的边缘逻辑

一句话定义:运行在 Cloudflare 边缘节点上的 Serverless 代码执行环境(FaaS)。

核心功能

如果说 Pages 是“存东西”的仓库,Workers 就是“处理业务”的大脑。它允许你用 JavaScript、Rust 或 C++ 编写代码,并运行在全球 300+ 个数据中心。

  • 极低延迟:代码在离用户最近的节点运行,没有冷启动问题(0ms Cold Start)。
  • 中间件能力:Worker 可以作为用户和源站之间的“拦截器”。它可以修改请求头、重写 URL、验证 Token、甚至直接返回自定义响应(API 接口)。
  • KV/D1 存储:Workers 可以连接 Cloudflare 的边缘数据库,实现动态业务逻辑。

适用场景

  • API 接口开发。
  • 请求/响应修改(如 A/B 测试、重定向)。
  • 身份验证网关。
  • 解决跨域 (CORS) 问题

3. Cloudflare Worker Routes:连接流量与代码的桥梁

一句话定义:一组匹配规则,决定了哪些 URL 访问会触发哪个 Worker 脚本。

核心概念

写好了 Worker 代码,它自己是不会运行的,需要通过“路由”把它挂载到互联网上。Cloudflare 提供两种挂载方式,其中 Routes(路由) 是最灵活的一种。

工作机制

  • 匹配模式:使用 glob 模式匹配(如 *.example.com/*)。
  • 触发条件
    1. 域名必须在 Cloudflare 接入。
    2. DNS 记录必须开启 代理模式(小黄云)
    3. 请求的 URL 必须匹配路由规则。
  • 拦截逻辑:当一个请求命中路由时,Cloudflare 会暂停原本指向源站(或 DNS IP)的传输,先运行绑定的 Worker 代码。Worker 可以决定是继续放行(fetch)还是直接拦截返回。

例子

  • example.com/api/* -> 绑定到 API Worker。
  • example.com/assets/* -> 不绑定 Worker(直接走 CDN)。

4. Cloudflare for SaaS (Custom Hostnames):多租户解决方案

一句话定义:允许 SaaS 平台服务商让客户将自己的域名(自定义域名)绑定到 SaaS 平台上,并自动管理 SSL 证书。

痛点解决

假设你开发了一个博客平台 myblog.com,用户张三注册后,希望用他自己的域名 zhangsan.com 来访问他的博客。

  • 传统做法:你需要手动在 Nginx 配置张三的域名,并手动申请和更新 SSL 证书。如果有 1 万个用户,运维将是噩梦。
  • Cloudflare for SaaS:你只需要配置一个 **回退源 (Fallback Origin)**(指向你的服务器)。张三只需将 zhangsan.com CNAME 解析到你的平台,Cloudflare 会自动完成验证、证书签发和流量转发。

核心组件

  • Fallback Origin:SaaS 平台的总入口。所有自定义域名的流量最终都会汇入这里。
  • Custom Hostname:客户的域名。Cloudflare 接管其 TLS 握手,然后根据配置路由到回退源。

5. 它们是如何协同工作的?(架构视角)

一个复杂的现代应用往往会同时用到以上四个组件。我们可以把它们想象成一家大型商场的不同部门:

  1. Cloudflare for SaaS商场大门和安检

    • 不管顾客(用户)是从哪个门(自定义域名)进来的,SaaS 功能负责确认身份(SSL 证书)并把人放进来。
  2. Worker Routes商场导购台

    • 顾客进门后,导购台根据顾客要去的地方(URL),决定是让他直接去店铺,还是先去服务台处理一下。
  3. Cloudflare Workers流动的服务人员/翻译官

    • 如果导购台指示需要服务,Worker 就会介入。它可以帮顾客换个标签(修改 Header)、指引去另一个楼层(重写 URL),或者直接回答顾客问题(返回 JSON)。
  4. Cloudflare Pages具体的店铺/货架

    • 这里存放着最终的商品(网页内容)。所有的流量经过层层处理,最终都是为了获取这里展示的内容。

总结图谱

graph TD
    User(用户访问) --> |Custom Hostname| SaaS(Cloudflare for SaaS)
    SaaS --> |汇聚流量| Zone(SaaS 平台域名 Zone)
    Zone --> |匹配 URL| Routes(Worker Routes)
  
    Routes -- 命中规则 --> Worker(Cloudflare Worker)
    Routes -- 未命中 --> Origin
  
    Worker -- 修改请求/逻辑处理 --> Origin(源站)
  
    subgraph 源站选项
        Pages(Cloudflare Pages)
        Server(传统服务器/VPS)
    end

结语

  • Pages 让部署网站变得极其简单。
  • Workers 赋予了边缘极大的可编程性。
  • Routes 精细控制了 Worker 的生效范围。
  • SaaS 解决了 B2B 场景下的域名和证书管理难题。

理解了这四个组件,你就掌握了 Cloudflare 边缘架构的核心,可以构建出高性能、低成本且易于扩展的全球化应用。