Cloudflare Worker 说明
依据视频:cloudflare worker是什么?零基础教程(技术爬爬虾 TechShrimp)整理。适合零基础从控制台部署到本地开发。
个人笔记,仅供学习,风险自负。 额度、界面文案以 Cloudflare 控制台与官方文档为准。
1. Cloudflare 与 CDN
Cloudflare 是一家提供 CDN、网络安全、DDoS 防护和域名服务的美国公司,也是目前最大、最流行的 CDN 服务商之一。
CDN(内容分发网络) 通过遍布全球的数据中心缓存网站静态资源。访客请求时,可从地理位置最近的节点读取,从而加快加载速度。
2. 什么是 Cloudflare Worker
Worker 是 Cloudflare 提供的免费无服务器计算 / 边缘计算服务。
你把一段代码(常用 JavaScript / TypeScript,也可选 Python)上传到 Worker 后,代码会部署到 Cloudflare 全球 CDN 节点上。有人访问 Worker 地址时,离用户最近的节点执行这段逻辑并返回结果——这叫边缘计算,延迟更低、性能更好。
许多人因此称 Cloudflare 为「大善人 / 赛博活佛」。
Worker 常见用途
- 返回数据 / 页面
- 重定向
- 过滤请求
- 做代理 / 内网穿透
- 做缓存
- 定时任务、鉴权、按国家分流 等
免费额度(视频中口径)
免费账号大约 每天 10 万次请求。个人使用通常够用。以控制台当前显示为准。
3. 控制台创建并部署第一个 Worker
- 打开 dash.cloudflare.com,注册并登录。
- 完成邮箱验证(未验证时无法正常进入 Worker 页面)。
- 左侧进入 Workers 和 Pages → 创建 → 创建 Worker。
- Cloudflare 会随机起名并生成示例代码与配置;可刷新改名。
- 点 部署。成功提示类似:「项目已部署到以下区域:全球」。
部署成功后会得到类似:
https://某某名字.你的子域.workers.dev
注意: *.workers.dev 在中国大陆网络下往往很难访问。建议绑定自己的域名(见下一节)。
4. 绑定自定义域名
- 打开该 Worker → 继续处理项目(或进入项目)→ 设置 → 触发器。
- 在 自定义域 中填写一个已托管到 Cloudflare 的域名或子域名,例如
worker.你的域名.xyz。 - 点 添加自定义域。证书初始化可能要几分钟,DNS 传播最长约 24 小时。
此后访问该自定义域名 = 访问该 Worker。
购买域名、申请免费域名、把域名拖管到 Cloudflare:视频作者有单独教程,可自行检索。
5. Worker 控制台功能速览
| 选项卡 | 作用 |
|---|---|
| 指标 | 近 24 小时请求次数、错误、耗时等 |
| 日志 / 实时日志 | 跟踪 console.log 等输出 |
| 部署 | 历史版本 |
| 集成 | 对接第三方数据库、缓存等 |
| 设置 → 触发器 | 自定义域、路由、Cron 定时触发 |
| 设置 → 变量 | 环境变量 / Secrets |
| 管理 | 重命名、删除 |
| 编辑代码 | 在线改代码 + 右侧预览;改完可再部署 |
在线编辑时:预览地址尽量改成你已绑定的自定义域名再测;确认无误后点部署上线。
6. 本地开发环境
6.1 安装 Node.js
- 打开 https://nodejs.org 下载安装。
- 打开终端,验证:
npm -v
能显示版本号即表示 Node / npm 就绪。
6.2 用脚手架创建项目
npm create cloudflare@latest
按提示操作(视频中示例):
- 项目名,如
tech-shrimp-worker - 模板选 Hello World
- 语言选 TypeScript(也有 Python 选项)
- 是否用 Git:可按需选 no
- 是否立即部署:可先选 no,之后用
npm run deploy
6.3 package.json 里的关键命令
脚手架会生成依赖 Wrangler(Cloudflare 官方脚手架 / CLI):
| 脚本 | 实际作用 |
|---|---|
npm run start / npm run dev |
wrangler dev 本地调试 |
npm run deploy |
wrangler deploy 发布到 Cloudflare |
6.4 本地启动与踩坑
cd tech-shrimp-worker
npm install
npm run start
成功后访问终端给出的本地地址(常见 http://localhost:8787/),应看到 Hello World。
视频中提到:当时最新 wrangler 3.62.0 有问题,作者降到 3.61.0 后 npm install 再启动才成功。若本地起不来,可尝试固定较稳版本:
"wrangler": "3.61.0"
6.5 从本地发布
npm run deploy
会打开浏览器完成 Cloudflare 登录,登录后继续即可部署。发布出来的 workers.dev 域名在国内仍可能打不开,仍需绑定自己的域名。
7. 项目与代码要点
7.1 项目结构(常见)
src/index.ts:入口代码wrangler.toml:项目名、入口、兼容性日期、绑定等package.json:脚本与依赖.wrangler/、node_modules/、test/等
7.2 wrangler.toml
典型字段:
name = "tech-shrimp-worker"
main = "src/index.ts"
compatibility_date = "2024-07-29"
compatibility_flags = ["nodejs_compat"]
compatibility_date 类似运行时版本:推送到 Cloudflare 时按该日期对应的运行环境执行。文件里还有大量注释链接(Smart Placement、环境变量、Workers AI 等),可点进官方文档细学。
7.3 入口 fetch
核心是两个概念:
request:浏览器发来的请求Response:你返回给浏览器的内容
最简示例:
export default {
async fetch(request, env, ctx): Promise<Response> {
return new Response('Hello World!');
},
} satisfies ExportedHandler<Env>;
7.4 打印日志
与前端一样:
console.log('你的日志');
本地 npm run start 后访问页面,日志会出现在终端。改代码一般会自动 reload,不必每次手动重启(改 wrangler.toml 绑定后通常需要重启)。
7.5 request.cf(很有用)
request.cf 是 Cloudflare 计算并填充的客户端信息,例如:
- 经纬度、国家、城市、大洲
- HTTP 协议版本、TLS 相关信息
- Bot Management 评分:越接近 100,是真人的概率越高;可设阈值过滤爬虫/机器人
7.6 环境变量
在 wrangler.toml 配置(或控制台「变量」),再用:
npm run cf-typegen
生成类型后,在代码里通过 env.变量名 读取。改绑定后需重启本地服务。
7.7 KV / D1 / R2(简介)
| 产品 | 用途 |
|---|---|
| KV | 小型非关系型键值存储;put / get(异步,需 await) |
| D1 | Cloudflare 提供的 SQLite 类数据库,适合更大结构化数据 |
| R2 | 对象存储(文件);视频中提到约有 10GB 免费额度,以官网为准 |
在 wrangler.toml 绑定 Namespace / 数据库 / 桶后,在 Env 里声明对应类型即可使用。
8. 官方示例思路(视频演示)
可在 Workers Examples 找到更多。视频演示过:
- 返回 HTML:拼 HTML 字符串,
Content-Type: text/html - 返回 JSON:
Response.json(data) - 代理远程网页:
fetch(远端)再return回来(代理的基本原理;作者曾用 Worker 把 NewBing 代理到国内域名) - 重定向:
Response.redirect(url) - 合并多个请求结果:并行取多个 API,合并 JSON
- 天气预报:用
request.cf的经纬度调用天气 API - Header 鉴权:校验请求头密码,失败返回 403
- 按国家重定向:读
request.cf.country - 按 TLS 版本过滤:只允许 TLS 1.2 / 1.3
- 定时任务:
scheduled入口 +wrangler.toml里triggers/ Cron 表达式
9. 延伸资源
- 官方文档:developers.cloudflare.com/workers
- 示例页:workers/examples
- GitHub 合集:awesome-cloudflare(图床、邮箱、博客、短链、网站分析、隧道加速、文件分享等)
- Workers AI:可在 Worker 中调用多种开源大模型(视频时仍属早期,但作者看好)
10. 操作清单(最短路径)
- 注册 Cloudflare → 验证邮箱
- Workers 和 Pages → 创建 Worker → 部署
- 设置 → 触发器 → 绑定自定义域
- 本机装 Node →
npm create cloudflare@latest npm run start本地调试 →npm run deploy上线- 按需配置环境变量、KV/D1/R2、Cron
说明根据上述 YouTube 教程口述与画面整理,界面文案与额度可能随 Cloudflare 更新而变化,请以控制台与官方文档为准。