深度解析:Cloudflare 核心组件 —— Pages, Workers, Routes 与 SaaS
深度解析:Cloudflare 核心组件 —— Pages, Workers, Routes 与 SaaS
在构建现代 Web 应用和边缘架构时,Cloudflare 已经不仅仅是一个 CDN,它提供了一整套 Serverless(无服务器)基础设施。很多开发者在使用时容易混淆 Pages、Workers、Worker Routes 和 Cloudflare 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/*)。 - 触发条件:
- 域名必须在 Cloudflare 接入。
- DNS 记录必须开启 代理模式(小黄云)。
- 请求的 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.comCNAME 解析到你的平台,Cloudflare 会自动完成验证、证书签发和流量转发。
核心组件
- Fallback Origin:SaaS 平台的总入口。所有自定义域名的流量最终都会汇入这里。
- Custom Hostname:客户的域名。Cloudflare 接管其 TLS 握手,然后根据配置路由到回退源。
5. 它们是如何协同工作的?(架构视角)
一个复杂的现代应用往往会同时用到以上四个组件。我们可以把它们想象成一家大型商场的不同部门:
Cloudflare for SaaS 是 商场大门和安检。
- 不管顾客(用户)是从哪个门(自定义域名)进来的,SaaS 功能负责确认身份(SSL 证书)并把人放进来。
Worker Routes 是 商场导购台。
- 顾客进门后,导购台根据顾客要去的地方(URL),决定是让他直接去店铺,还是先去服务台处理一下。
Cloudflare Workers 是 流动的服务人员/翻译官。
- 如果导购台指示需要服务,Worker 就会介入。它可以帮顾客换个标签(修改 Header)、指引去另一个楼层(重写 URL),或者直接回答顾客问题(返回 JSON)。
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 边缘架构的核心,可以构建出高性能、低成本且易于扩展的全球化应用。