独立站边缘计算:Cloudflare Workers/Vercel Edge的应用场景与性能

边缘计算(Edge Computing)的核心价值是"把计算搬到离用户最近的节点",不是"让所有代码都跑在边缘"。Cloudflare Workers免费...

边缘计算:三个值得用、两个不该碰的场景Edge computing: three good fits, two traps 边缘函数不是万能提速器 —— 只有离用户近才有意义Edge is not a magic speed-up — proximity is the only point 适合:A/B分流Good: A/B split 适合:地理重定向Good: geo redirect 适合:边缘鉴权Good: edge auth 按cookie分流,不走源站Split by cookie, no origin roundtrip 分流延迟<10毫秒Latency <10ms 按国家/语言跳对应落地页Route by country/language TTLFB改善50至150毫秒TTFB gain 50-150ms JWT校验在边缘完成JWT verify at edge 省源站往返1次Save 1 origin roundtrip 性能对比(TTFB)TTFB comparison 传统源站渲染:300至800毫秒Origin SSR: 300-800ms 边缘函数渲染:30至100毫秒Edge render: 30-100ms 纯静态CDN:10至50毫秒Pure static CDN: 10-50ms 不该碰的场景When NOT to use edge 长计算(>50毫秒CPU)超时Long compute >50ms: timeout 数据库直连,延迟比源站还高Direct DB: worse latency 大量文件读写受限于内存File IO limited by memory 红线:边缘函数CPU时间上限50毫秒(Cloudflare免费版),超过直接1102错误Red line: 50ms CPU limit on free tier; over = 1102 error 判断标准:你的请求是否要在源站跑数据库查询?要的话边缘帮不上忙,只会更慢Rule: if you hit a DB, edge won’t help — it gets worse
边缘计算三类适用场景与性能区间

独立站边缘计算:Cloudflare Workers/Vercel Edge的应用场景与性能

结论先行:边缘计算(Edge Computing)的核心价值是”把计算搬到离用户最近的节点”,不是”让所有代码都跑在边缘”。Cloudflare Workers免费版CPU时间上限50毫秒,Vercel Edge Functions限制更长但冷启动更慢。真正适合边缘的场景只有三类:地理重定向、A/B测试分流、轻量鉴权。反直觉的是:如果你的页面要查数据库,把逻辑搬到边缘反而更慢——因为边缘节点到数据库的网络距离,比源站到数据库更远。

一、边缘计算到底是什么,和CDN什么关系

传统CDN只做静态文件缓存,用户请求来了直接返回缓存。边缘计算在CDN节点上跑一小段JavaScript代码,在返回响应之前可以做逻辑判断:根据用户地理位置跳不同页面、根据cookie决定展示哪个版本、校验JWT是否有效。这层逻辑在离用户几十毫秒的节点上执行,不用回源站。

和服务端渲染(SSR)的区别:SSR在你自己的服务器上跑,全球用户都要跨越大洋连到那台服务器;边缘函数在全球300多个节点上同时跑,用户连最近的节点就行。对于跨境B2B独立站,这个距离差异直接决定了TTFB是100毫秒还是800毫秒。CDN和边缘的关系,见CDN全球加速。

反直觉的判断:边缘计算不是”更快的服务器”,它是”更小的服务器”。每个边缘函数的CPU时间有严格上限,不能做重计算。如果你把一个要跑200毫秒的数据库查询逻辑搬到边缘,结果会比在源站跑慢3倍以上——因为边缘节点到数据库的网络距离远。

执行环境 运行位置 CPU时间上限 冷启动 数据库访问 成本模型
传统服务器(VPS) 单一机房 无硬限制 无(常驻) 本地/内网,快 包月,固定
Cloudflare Workers 全球300+节点 10毫秒免费/30毫秒付费 接近零(V8隔离) 需连接外部数据库,慢 按请求数计费
Vercel Edge Functions 全球25+节点 最长30秒 10至50毫秒 支持Edge DB 按调用时长计费
AWS Lambda@Edge 全球CloudFront节点 最长5秒 10至100毫秒 需走公网连RDS 按请求+时长

二、三个真正值得用边缘计算的场景

第一个场景:按地理位置和语言做重定向。一个出海站,德国用户进来自动跳到/de/德语版,中东用户跳到/ar/阿拉伯语版。传统做法是在服务器上读IP库做判断,每个请求都要回源站。用Cloudflare Workers写10行代码,在边缘节点直接根据IP国家返回301,TTFB从400毫秒降到50毫秒。多语言站怎么配hreflang,见Hreflang多语言落地。

第二个场景:A/B测试分流。你想把首页做成两个版本,50%用户看A版本,50%看B版本。传统做法是在服务端读取cookie后决定渲染哪个版本。边缘做法更简单:Workers根据cookie哈希值,直接重写HTML中的资源路径或注入不同变量,源站完全无感知。分流本身在10毫秒内完成,不影响TTFB。

第三个场景:轻量鉴权和反爬。用户登录后发的请求,先在边缘校验JWT有效性,无效直接返回401,不回源站。这样源站只处理合法请求,带宽和CPU都省了。反爬也可以在边缘做:检测到可疑UA或请求频率过高,直接返回挑战页,不让请求到达源站。

场景 边缘实现方式 性能收益 开发工作量 建议优先级
地理重定向 Workers读request.cf.country TTFB降50至150毫秒 半天 高
A/B测试分流 Workers按cookie哈希分流 不增加TTFB 1至2天 中
JWT边缘鉴权 边缘验证token,无效直接拒 源站负载降20%至40% 2天 高
反爬/限流 边缘检测UA和频率 恶意请求不回源 1天 高
个性化页面渲染 边缘拼装HTML片段 仅对重复片段有效 3至5天 低

三、两个不该用边缘计算的坑

第一个坑:把数据库查询搬到边缘。很多人觉得”边缘计算很高级”,把用户中心的查询逻辑也搬上去。结果边缘节点连的是远程数据库,一次查询的网络往返就要200毫秒,比源站本地查询慢5倍。边缘函数适合做”无状态、轻计算、靠缓存”的逻辑,不适合做”需要查数据库”的逻辑。

第二个坑:把整个SSR搬到边缘。Next.js的Edge Runtime模式确实可以在Vercel边缘节点跑React渲染,但渲染一个复杂页面的CPU时间可能超过100毫秒,撞上免费版限制,或者冷启动让首访用户多等50毫秒。复杂的服务端渲染仍然应该在源站跑,边缘只做轻量中间层。第三方脚本怎么治理,见第三方脚本治理。

场景化示例:一个出海SaaS产品,用户仪表盘页面需要查数据库渲染。团队一开始兴奋地用Vercel Edge Runtime重写了这个页面,结果发现边缘节点到他们的AWS RDS数据库延迟80毫秒,加上渲染时间,TTFB反而从250毫秒涨到了450毫秒。后来把仪表盘放回源站,只在边缘做登录校验和路由分流,TTFB才回到250毫秒。

坑 看起来的好处 实际后果 正确做法
数据库查询搬到边缘 “离用户更近” 边缘到DB网络远,延迟涨3至5倍 DB查询留源站,边缘只做缓存读取
整站SSR跑在边缘 “全球加速” CPU超限/冷启动慢,TTFB反而涨 边缘只做中间层,渲染留源站
大量文件读写 “本地处理” 边缘无持久磁盘,内存有限 文件操作走对象存储API
长计算任务 “并行更快” CPU超时直接1102错误 拆成小任务或走消息队列

四、成本与选型:Cloudflare Workers vs Vercel Edge

Cloudflare Workers和Vercel Edge Functions是目前独立站最常用的两个边缘平台。选型主要看你的技术栈和流量规模。Cloudflare Workers用V8 isolate,冷启动接近零,免费版每天10万次请求,非常适合做轻量路由和鉴权。Vercel Edge Functions和Next.js深度集成,如果你已经用Next.js,迁移成本最低,但冷启动比Workers慢。

成本上,Cloudflare付费版5美元/月起,含1000万次请求;Vercel Pro版20美元/月起,边缘函数按执行时间计费,流量大了账单会跳得快。中小B2B独立站月PV在10万以内,Cloudflare免费版基本够用。性能怎么监控,见站点监控与告警。

维度 Cloudflare Workers Vercel Edge Functions AWS Lambda@Edge
冷启动 接近零(V8) 10至50毫秒 10至100毫秒
免费额度 10万请求/天 100GB-hours/月 100万请求/月
付费起步 5美元/月 20美元/月 按用量,无包月
开发语言 JavaScript/TypeScript JavaScript/TypeScript Node.js/Python
适合框架 纯函数/中间件 Next.js深度集成 AWS生态站
节点覆盖 300+城市 25+国家 CloudFront全球

FAQ 常见问题

Cloudflare Workers免费版真的够用吗?
B2B独立站月PV在10万以内,免费版完全够用。免费额度是每天10万次请求、CPU时间10毫秒/请求。你的站点月PV如果在5万左右,平均每天1700次请求,离免费额度还差60倍。真正要担心的不是请求量,而是CPU时间——如果你的Workers代码写得太重,单次CPU超过10毫秒就会被报错。
边缘函数和CDN缓存是什么关系?
CDN缓存是直接返回静态文件,不执行代码;边缘函数是在返回之前跑一段逻辑,决定返回什么、怎么返回。可以理解为:CDN是仓库直接发货,边缘函数是仓库门口加了一个分拣员。两者叠加使用最常见——边缘函数做路由和鉴权,通过后CDN直接返回缓存好的HTML,不重复计算。
Vercel Edge Functions和Cloudflare Workers哪个快?
看场景。纯计算轻量逻辑,Cloudflare Workers冷启动接近零,通常比Vercel快20至50毫秒。如果是Next.js应用,Vercel和Next.js深度集成,框架级优化反而让整体TTFB更稳。选型不要只看单次延迟,要看你团队的技术栈——已经用Next.js就选Vercel,已经用Cloudflare CDN就选Workers,减少技术栈碎片。
边缘函数能做SEO优化吗?
能做一部分,但不是主力。边缘函数可以做的SEO动作:按爬虫UA返回优化版内容、根据地区返回不同的hreflang标签、拦截恶意爬虫。但真正的SEO内容优化(标题、H1、内链、结构化数据)应该在构建时写死在HTML里,不要依赖边缘函数动态注入。Google爬虫虽然会执行JS,但边缘注入的内容不稳定,不如直接写在HTML里。
边缘函数出错怎么回滚?
Cloudflare和Vercel都支持版本回滚:每次部署自动保留历史版本,控制台一键切回上一个版本。建议部署流程加一步灰度:先在测试环境验证,再用百分比流量灰度上线。如果出问题,回滚时间通常在30秒以内。另外,边缘函数的错误监控要接Sentry或平台自带日志,不监控等于没上线。
什么情况下边缘计算不会让站变快?
三种情况不会变快:第一,你的源站本身就在全球用户附近(比如用户都在国内,源站也在国内),搬到边缘反而绕远;第二,你的页面主要内容来自数据库查询,边缘帮不上忙;第三,你的请求量很小(月PV低于1万),边缘的冷启动开销比收益还大。判断标准:先测源站TTFB,如果已经在200毫秒以内,边缘优化的空间不大。

写在最后

边缘计算是一个”小而美”的优化手段,不是全站架构的革命。它解决的是”每个请求都要回源站”这个具体瓶颈,适合做轻量路由、鉴权、分流这类逻辑。如果你抱着”上边缘就能全站快一倍”的预期去做,大概率会失望——因为大部分慢,慢在数据库查询和第三方脚本,不在网络距离。

落地建议从一个最小场景开始:先用Cloudflare Workers做一个地理重定向,把德国用户自动导到德语版页面。这个改动半天就能上线,性能收益立竿见影,风险也最低。跑稳两周后,再考虑加A/B分流或边缘鉴权。不要一上来就想把整个站搬到边缘。

一句可以记住的话:边缘计算是离用户最近的快递站,不是离数据库最近的仓库——把分拣活放它那儿,别把仓库活也搬过去。

环形山
环形山 环形山专家

机构官方 · 环形山 Crater

环形山(Crater)是一家专注 WordPress 独立站开发 + Google SEO + GEO 全域增长的出海服务公司,服务智能硬件、工业装备、SaaS、新能源等赛道。

产品能力方法论白皮书行业报告
965篇分享
78篇知识库