Cloudflare 免费套餐资源概述
充分利用 Cloudflare 免费资源,可以实现高效、低成本的云原生架构部署,无需自建基础设施,即可获得全球加速、安全防护和灵活的边缘计算能力。
免费套餐资源概述
Cloudflare 免费方案为开发者提供了丰富的基础服务,包括 CDN 加速、免费 SSL、DDoS 保护等。在此基础上,开发者还可使用 Workers 平台及其他边缘服务。下表总结了各项免费资源及其额度:
在实际应用中,合理分配和利用这些资源,可以满足大多数中小型项目的需求。
| 资源类型 | 免费额度说明 | 典型用途 | 
|---|---|---|
| Workers | 每天 100,000 次请求(每次 10ms CPU),静态资源请求无限制 | 反向代理、API 加速、边缘计算 | 
| Workers KV | 每天 100,000 次读、1,000 次写,单命名空间 1GB | 配置存储、静态元数据 | 
| Pages | 每项目每月 500 次构建,100 个自定义域名,20,000 文件/站点,单文件≤25MB | 静态网站托管、内容分发 | 
| R2 对象存储 | 每月 10GB 存储,1,000,000 次 Class A、10,000,000 次 Class B 操作,出站免费 | 大型静态资源、图片、视频存储 | 
| D1 数据库 | 每天 5,000,000 行读、100,000 行写,5GB 存储 | 轻量 SQL 应用、原型开发 | 
| Queues | 仅付费计划可用 | 消息队列、异步任务 | 
通过 Cloudflare 控制面板或 Wrangler CLI,开发者可便捷地创建和管理上述资源。利用这些免费额度,可以在全球节点部署高可用的边缘应用,无需自建运维。
典型使用场景
在 Cloudflare 免费资源的支持下,开发者可以实现多种高效的应用场景。以下分别介绍常见的典型用法,并配以说明和代码示例。
反向代理与代理
Cloudflare Workers 可作为灵活的请求代理。通过编写 Worker 脚本,可以拦截 HTTP 请求、修改路径或头部,并将请求转发到后端服务器或第三方 API。例如,以下代码实现了简单的反向代理,将请求转发到 https://api.example.com:
// 反向代理示例:将请求转发到指定后端 API
addEventListener("fetch", event => {
  event.respondWith(handle(event.request));
});
async function handle(request) {
  let url = new URL(request.url);
  url.hostname = "api.example.com";
  let response = await fetch(url.toString(), request);
  return response;
}
通过这种方式,可以将 Cloudflare 的全球加速和缓存能力应用于任意后端服务。结合 Cache API 或 Workers KV,还可缓存代理结果,进一步减轻源站压力。此外,Workers 支持自定义路由、A/B 测试、请求重写等高级流量控制。
API 加速
Cloudflare 的全球网络和缓存机制可显著提升 API 响应速度。对于可缓存的数据,建议使用 Cache API 将响应缓存在边缘节点。以下示例展示了如何将响应存入 caches.default,并设置 Cache-Control 头:
// API 缓存加速示例
async function handle(request) {
  const cache = caches.default;
  let response = await cache.match(request);
  if (!response) {
    response = await fetch(request);
    response = new Response(response.body, response);
    response.headers.append("Cache-Control", "s-maxage=10");
    ctx.waitUntil(cache.put(request, response.clone()));
  }
  return response;
}
对于频繁访问但不常更新的数据,可将其存入 Workers KV 作为全局缓存。需要注意,Workers KV 写入有延迟,不适合高并发实时写场景。静态资源(如图片、脚本)可挂载到 R2,并通过 Workers 缓存返回,实现免费的全球分发和带宽。
边缘计算
Workers 支持在边缘节点运行 JavaScript/Wasmtime,实现离用户更近的计算。可在请求生命周期的不同阶段执行自定义逻辑,如鉴权、A/B 测试、动态路由、内容调整等。例如,可在边缘节点根据地域选择不同源站,或直接生成响应内容。
边缘计算常见应用包括:
- 自定义访问控制(如基于 IP 的防护)
- 动态页面片段生成
- DDoS 过滤与安全加固
- 日志收集与异步分析
由于 Workers 与 Cloudflare 网络深度集成,还可灵活控制缓存策略、证书、流量规则等,提升安全性与性能。
静态网站托管
Cloudflare Pages 是专为静态站点设计的免费托管服务,支持无限制的静态请求和带宽。常见流程为:使用 Hugo、Jekyll 等静态站点生成器编译内容,推送到代码仓库,Pages 自动构建并全局发布。
Pages 支持无限项目和分支预览,适合多人协作。单站点最多 20,000 文件,单文件≤25MB。大体积资源可存储于 R2,并通过自定义域名引用。结合 Hugo 等工具,可实现“免费建站”,无需关心服务器和 CDN 配置。
使用技巧与注意事项
合理利用 Cloudflare 免费资源,可以极大提升应用性能和可维护性。以下是实践中常见的优化建议和注意事项:
- 静态资源直接免费:将可静态化内容(如图片、CSS、JS)缓存为静态资源,充分利用免费带宽。可通过 Workers 或 Pages 托管,避免额外费用。
- 缓存与 KV 策略:API 缓存时应设置合适的 s-maxage,并用ctx.waitUntil()异步缓存响应。Workers KV 适合低频写、全局同步场景,不宜用作高并发实时数据库。
- 定时任务与触发器:Workers 支持 Cron Triggers(免费),Queues 仅付费可用。可用定时任务实现低频作业,异步任务可结合 Durable Objects 或外部队列。
- 资源限制:Workers 单次执行默认最大 30 秒(可申请 5 分钟),有内存和子请求数限制。长任务建议拆分或用队列处理。
- 额度重置:大部分免费额度按日(UTC 零点)重置,Pages 构建额度每月重置。合理安排任务,充分利用配额。
- 域名与证书:免费套餐支持自定义域名(每项目 100 个),SSL 证书自动管理,无需手动配置。
推荐工具与示例
为便于开发和部署,推荐结合以下开源工具与服务。每种工具均配有简要说明和典型配置示例。
Wrangler
Wrangler 是 Cloudflare 官方 CLI 工具,用于构建和部署 Workers 应用。支持项目初始化、绑定管理、本地调试等。
示例配置(wrangler.toml):
name = "my-worker"
type = "javascript"
account_id = "YOUR_ACCOUNT_ID"
route = "/*"
zone_id = "YOUR_ZONE_ID"
Hugo
Hugo 是高性能静态站点生成器,Cloudflare Pages 支持一键部署。典型配置(config.toml)如下:
baseURL = "https://yourdomain.com/"
title = "我的 Hugo 站点"
languageCode = "zh-cn"
theme = "ananke"
[Params]
  author = "作者名"
将生成的 public/ 文件夹推送到 GitHub,关联 Pages 后自动部署。
GitHub Actions
GitHub Actions 可实现自动化 CI/CD。以下为使用 Wrangler 部署 Workers 的工作流示例(.github/workflows/deploy.yml):
name: Deploy Worker
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Publish to Cloudflare Workers
        uses: cloudflare/wrangler-action@v3
        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
需在仓库 Secrets 配置 CLOUDFLARE_API_TOKEN。Pages 部署可用 cloudflare/pages-action。
OpenResty
OpenResty 基于 Nginx,支持 Lua 脚本扩展。可用于本地开发代理或自建 CDN 前端。示例配置(nginx.conf):
worker_processes 1;
events { worker_connections 1024; }
http {
  lua_shared_dict my_cache 10m;
  server {
    listen 8080;
    location / {
      access_by_lua_block {
        local uri = ngx.var.request_uri
        if uri == "/" then
          ngx.req.set_uri("/index.html")
        end
      }
      root /usr/share/nginx/html;
    }
  }
}
适合本地开发或与 Cloudflare 边缘部署结合使用。
Bun
Bun 是新兴的 JavaScript 运行时和工具链,兼容 Node.js 生态。可用于本地开发加速依赖安装和构建。示例用法:
bun init
bun install express
bun run dev
Bun 目前不直接支持 Workers 运行时,但可作为本地构建工具与 Wrangler 配合使用。
总结
Cloudflare 免费套餐为开发者提供了丰富的边缘计算与托管资源。通过合理利用 Workers、KV、Pages、R2、D1 等服务,可以实现高效、低成本的 Web 应用部署。结合 Wrangler、Hugo、GitHub Actions 等工具,开发与运维流程更加自动化和现代化。建议根据实际需求,灵活组合各项资源,充分发挥 Cloudflare 的全球网络优势,打造安全、可扩展的云原生架构。
参考文献
- Cloudflare 官方文档 - developers.cloudflare.com
- Cloudflare Workers KV 说明 - developers.cloudflare.com
- Cloudflare Pages 指南 - developers.cloudflare.com
- Cloudflare R2 存储 - developers.cloudflare.com
- Cloudflare D1 数据库 - developers.cloudflare.com