CFCF Static Export ProDOCS
首页/Cloudflare 文档/Cloudflare CDN 与 Cache API 中文文档

Cloudflare CDN 与 Cache API 中文文档

参照官方手册结构整理(数据截至 2026-10,配额/价格以官方最新页面为准)。技术术语保留英文原词。


1. 概述

Cloudflare CDN 把高频访问的内容(图片、视频、网页等)缓存到离用户更近的全球边缘数据中心,降低源站负载、提升访问速度。配合 Workers 的 Cache API,你可以在 Worker 代码里直接读写边缘缓存。

一句话定位:全球边缘缓存层,默认不收数据出网费。

所有套餐均可用。


2. 核心概念

  • 默认缓存行为:Cloudflare 按源站 Cache-Control / Expires 头决定缓存,并默认缓存一批静态扩展名。
  • Edge TTL:无缓存头时,按状态码给默认边缘缓存时长。
  • Request collapsing(请求合并 / Cache lock):同一边缘节点对同一未缓存资源并发请求,只回源一次,其余等待复用。
  • Cache Rules:按 URL/条件自定义哪些资源缓存、缓存多久。
  • Tiered Cache(分层缓存):在多地缓存热点内容,进一步降低源站流量。
  • Cache Reserve:用 Cloudflare 持久存储延长缓存时间。
  • Purge(清除):即时清除指定或全量缓存。
  • Cache API(Workers):caches.default 在代码里读写缓存。

3. 架构与工作原理

用户请求抵达最近边缘节点 → 命中缓存则直接返回(HIT)→ 未命中(MISS)则回源抓取并缓存(受 cache lock 保护只回源一次)→ 后续请求命中。Worker 可在请求/响应阶段用 Cache API 主动 put / match / delete 自定义缓存。


4. 快速开始(Cache API)

在 Worker 里读取/写入边缘缓存:

export default {
  async fetch(req, env) {
    const cache = caches.default;
    let res = await cache.match(req);
    if (res) return res;                       // HIT
    res = await fetch(req);                     // MISS → 回源
    const url = new URL(req.url);
    if (res.ok && url.pathname.startsWith("/static/")) {
      const h = new Headers(res.headers);
      h.set("Cache-Control", "public, max-age=3600");
      res = new Response(res.body, { ...res, headers: h });
      await cache.put(req, res.clone());
    }
    return res;
  },
} satisfies ExportedHandler;

CDN 侧的缓存策略通常通过 Cache Rules(Dashboard 或 API)配置,无需代码。


5. 配额与限制

限制项 Free / Pro Business Enterprise
最大上传大小 100 MB 200 MB 最高 5 GB
单文件可缓存大小 512 MB 512 MB 5 GB(默认)
  • 默认缓存的文件扩展名:7Z、AVI、AVIF、APK、BMP、BIN、BZ2、CLASS、CSS、CSV、DOC、DOCX、EJS、EPS、EXE、EOT、FLAC、GIF、GZ、ICO、ISO、JAR、JPG/JPEG、JS、MID/MIDI、MKV、MP3、MP4、OGG、OTF、PDF、PICT、PNG、PPT/PPTX、PS、RAR、SVG/SVGZ、SWF、TAR、TIF/TIFF、TTF、WEBM、WEBP、WOFF/WOFF2、XLS/XLSX、ZIP、ZST 等。
  • 默认不缓存 HTML 与 JSON(需 Cache Rules 显式开启);默认缓存 robots.txt。
  • Edge TTL 默认值(无缓存头时):200/206/301 → 120 分钟;302/303 → 20 分钟;404/410 → 3 分钟。
  • 不缓存的情形:Cache-Control: private/no-store/no-cache/max-age=0、Set-Cookie 存在、非 GET 请求。
  • 无数据出网(egress)费:这是 Cloudflare CDN 的核心优势。

6. 定价

CDN 缓存与 Cache API 不单独按量计费,包含在各套餐内(Free 起即可用)。可能产生费用的是:Cache Reserve 的存储、Logpush 导出、以及超出套餐的上传/可缓存大小上限(需升级套餐)。


7. 最佳实践

  • 对静态资源(图片、JS、CSS、字体、视频)依赖默认扩展名缓存,无需额外配置。
  • 用 Cache Rules 把 HTML/JSON 等动态内容按需缓存,配合合理的 Edge TTL,大幅降低源站压力。
  • 在 Worker 里用 Cache API 缓存「昂贵的计算结果 / 第三方响应」,避免重复回源或重复计算。
  • 内容更新后用 Purge 精确清除(按 URL 或前缀),而非全量刷新。

8. 适用场景与选型

  • 任何面向公网、追求低延迟与高可用的站点都应开启 CDN 缓存;yuebin.uk 的静态导出正是借由这一层就近分发。
  • 与 Workers / R2 / Pages 天然协同:静态资源放 R2、动态逻辑放 Worker、边缘分发靠 CDN。
  • 需要精细控制缓存键、缓存特定响应体时,用 Cache API;需要按 URL 批量/条件缓存时,用 Cache Rules。