摘要:以 geojsoncn.com 为例,聊怎么用「阿里云 ESA(中国边缘)+ Cloudflare Workers + R2 对象存储」三件套,把静态站月成本压到接近 0,同时过掉百度 SEO 那几道硬门槛(国内可达、访问速度、ICP 备案)。不涉密、不堆业务代码,只拆架构和算账。
前言
说真的,我一开始折腾建站也是被"服务器好贵"劝退的。后来才发现,现在根本不用养服务器——计算塞边缘节点,数据丢对象存储,前端基本碰不到传统主机,月账单压到接近 0 不是吹的(前提是你还在各家免费额度里浪)。
我拿自己那个 geojsoncn.com 当例子。它是个全国行政区划边界数据的站,几万张地图页、全站静态、日均请求量不算小,但背后真没有一台传统意义上的服务器。
这篇文章就唠一件事:怎么用 ESA(中国边缘)+ Cloudflare Workers(无服务器计算)+ R2(对象存储) 这组合,搭个对百度友好、又几乎不花钱的站。
我的另外一个站gisdata.cn更是转换为了OSS+ESA:https://gisdata.cn。
一、为啥非得是 ESA + Cloudflare 这套
省钱和百度收录,这俩其实是绑死的——只图便宜不上中国边缘,百度收录大概率翻车。
单挂 Cloudflare 行不行?钱是省了,但节点基本都在境外。百度爬虫从国内拉你的页面,慢得一批还经常不稳,排名直接废。不少新手一上来就这么干,结果索引量惨不忍睹,查了半天才反应过来是物理延迟的问题。
所以"中国边缘"不是锦上添花,是地基。阿里云 ESA 正好补这块:边缘缓存和加速节点铺在国内,域名挂它上面能过 ICP 备案,国内用户和百度爬虫打到的都是本土节点。
分工大概是这样:
- ESA 蹲在国内:管缓存、加速、回源调度,国内可达性它兜底;
- Cloudflare 干脏活:实际由 Worker 现取 R2 里的静态文件返回,免费额度给得相当大方;
- R2 当唯一真相源:所有页面和数据都躺对象存储里,一个文件对应一个 URL。
说白了,就是把"国内可达"和"便宜计算"拆成两层各管各的,中间靠边缘缓存命中接起来。大部分请求在 ESA 那层就截胡了,根本到不了境外。
小提醒:你要是只图省事挂了 Cloudflare 没接 ESA,百度收录大概率会很难看。这真不是玄学,是爬虫从国内拉境外资源的物理延迟摆在那儿。
二、整体架构:一次请求到底走了啥
链路其实特直白,画出来是这样:
┌─────────────────────────────────────────────┐
│ 浏览器(国内用户 / 百度爬虫) │
└───────────────────┬─────────────────────────┘
│ HTTPS,域名走中国
▼
┌─────────────────────────────────────────────┐
│ 阿里云 ESA(中国边缘:缓存 + 加速 + 回源) │
└───────────────────┬─────────────────────────┘
│ 仅 MISS 时回源到境外
▼
┌─────────────────────────────────────────────┐
│ Cloudflare Worker(无状态函数,按 key 取数) │
└───────────────────┬─────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ R2 对象存储(唯一数据源,一个文件一份边界) │
└─────────────────────────────────────────────┘
核心就一句话:把“国内可达”和“便宜计算”拆两层。ESA 管国内速度和备案,Worker + R2 管近乎白嫖的计算和存储。两者靠边缘缓存命中衔接,绝大部分请求压根穿不过去。
三、零成本到底怎么算的(账本摊开)
先把账摊开。下面这几个数写稿时刚对着官方文档核过(2026 年 7 月,价格随时可能调,你自己落地前再瞄一眼,别全信我):
| 服务 | 免费额度(已核实) | 说明 |
|---|---|---|
| 阿里云 ESA | 免费版 0 元/月;生产用基础版 9.9 元/月(含 500GB 加速流量 + SLA 99.95%) | 免费版限速、没 SLA,纯测试玩玩;正经站建议基础版。它给国内边缘节点 + 能挂 ICP,是百度 SEO 的地基 |
| Cloudflare Workers | 免费版 10 万次请求/天 + 单请求 10 毫秒 CPU 上限 | 边缘缓存挡掉大部分流量,日常根本打不满 |
| Cloudflare R2 | 10GB 存储/月 + 1000 万次 Class B 读取/月 + 100 万次 Class A/月,且出口带宽免费 | 几万张 HTML + JSON 塞进去还有富余,没有 egress 费用(这点最香) |
算笔账:页面预渲染成静态文件存 R2 → ESA 边缘把大部分请求拦下来直接返 → 真正穿透到 Worker 的请求没几个 → Worker 和 R2 的免费额度基本用不完。
所以这个组合在"低到中流量"阶段,整站月费也就 10 块钱上下(一个生产级 ESA 基础版兜底 + Workers/R2 免费额度),比起养台服务器几乎可以忽略。
但我得泼盆冷水,别想当然以为"永久 0 元":
- ESA 那个 0 元/月的档,限速还没 SLA,扛不住真实流量;真上线得上 9.9 的基础版。所以"0 成本"准确说是"10 元/月级别的近零成本"。
- 免费额度都有天花板,量一大就计费,跑之前心里得有数。
- ICP 备案花的是"精力"不是"钱"——这块合规成本逃不掉,谁都别想省。
四、百度 SEO 那几道硬杠,这架构怎么接
百度对技术站的三条硬杠,这套架构是这么接的:
1. 国内可达
ESA 这层国内边缘保证了国内访问速度和稳定。纯境外方案?爬虫拉都拉不动,谈啥收录。
2. ICP 备案
域名必须完成备案( ESA 或国内节点上都行),不然百度基本不收、用户也打不开。这是前置条件,不是优化项,先后顺序别搞反。
3. 速度 / 移动优先
边缘缓存把首屏压得很低,移动端评分好看,正好撞上百度 “移动优先索引”。讲真,百度移动搜索占了国内八成以上的查询量,这条直接关系你有没有流量。
地基稳了,SEO 才稳。反过来,地基歪了后面全是补丁。
五、避坑指南
⚠️ 坑 1:以为挂 Cloudflare 就能百度引流
错。纯境外节点对百度爬虫不友好,必须加一层中国边缘(如 ESA)+ ICP 备案。⚠️ 坑 2:把"免费额度"当"永远免费"
流量超线就计费,生产环境建议提前设预算告警,别等账单出来吓一跳。⚠️ 坑 3:边缘 TTL 太长,更新看不见
改了代码/数据没刷缓存,用户最长要等 TTL 到期。发版流程里把“刷边缘缓存”钉死成必选项。⚠️ 坑 4:用了被墙的第三方资源
Google Fonts、reCAPTCHA 这些国内加载不了,首屏直接垮。换成国内可达的替代。
总结
用 ESA(中国边缘)+ Cloudflare Workers + R2 搭静态站,说白了三件事:计算下沉到边缘、数据收口到单一存储、中国边缘加 ICP 备案把百度 SEO 的硬门槛过了。
免费额度之内月费接近 0;规模化后按量付费,也比养服务器弹性得多。
最后啰嗦一句:ESA 这层中国边缘和 ICP 备案,千万别省。那是“对百度友好”和“纯境外玩具”之间的分界线,省了这俩,前面算的账全白搭。
要是你也在折腾低成本建站,顺着“边缘缓存命中率”这个旋钮调,账单和速度会一块儿变好。后面还能展开聊:几万张页怎么预渲染、TTL 怎么按资源类型分设、免费额度用满后怎么平滑升级——有空再写。