我的情况
我是个人开发者,有个技术博客(Astro 静态站),月访问量 3 万左右,流量 10GB。
之前部署在 Render 上,冲着"免费"和"自动部署"去的。用了几个月后,最近换到了阿里云 ESA。
核心原因:国内访问太慢了,延迟经常 400ms+。
这篇文章记录一下为什么换、怎么换、换了之后的效果。不是软文,纯个人踩坑经历。
为什么一开始选 Render
1. Heroku 凉了,大家都推荐 Render
2022 年 Heroku 取消免费版后,技术社区都在讨论"Heroku 替代品":
- Reddit 上最多人推荐 Render
- YouTube 教程都在讲"如何从 Heroku 迁移到 Render"
- 官方文档写得很友好
我虽然没用过 Heroku,但看大家都在用 Render,就跟风了。
2. 免费版够用(750 小时/月)
Render 免费版的配置:
- 静态站点:免费 100GB 流量/月
- Web Service:750 小时/月(够跑一个小应用)
- 自动 HTTPS 证书
- 自动部署(push 代码就上线)
对于我这种小博客,完全够用。
3. 部署体验很好
Render 的部署流程:
1. 连接 GitHub 仓库
2. 选择分支
3. 配置构建命令(npm run build)
4. push 代码 → 自动部署
全程自动化,不用操心。
第一次用的时候觉得:"这也太方便了!"
4. 支持多种框架
Render 原生支持:
- Next.js
- Astro
- Remix
- SvelteKit
- 甚至 Docker
不像有些平台只支持特定框架,Render 的兼容性很好。
Render 的实际体验
优点(确实不错)
1. 部署流程完美
从 push 代码到上线,全程 3-5 分钟:
- 自动检测到 push
- 自动拉取代码
- 自动安装依赖
- 自动构建
- 自动部署
控制台能看到实时日志,部署失败会邮件通知。
2. 预览环境
每个 Pull Request 会自动生成预览 URL,测试完再合并。
这个功能对团队协作很有用(虽然我是个人项目)。
3. 控制台简洁
Render 的 Dashboard 设计很好,找功能很快,不像有些平台菜单套三层。
4. 文档质量高
官方文档写得很清楚,遇到问题基本都能找到答案。
而且有很多"从 XXX 迁移到 Render"的教程。
缺点(让我最终放弃的原因)
1. 国内访问慢到崩溃(最致命)
这是我换掉 Render 的主要原因。
我用站长工具测了国内访问速度:
- 北京:TTFB 420ms
- 上海:TTFB 380ms
- 广州:TTFB 410ms
- 成都:TTFB 460ms
- 深圳:TTFB 390ms
平均延迟 400ms+,用户打开页面要等半天。
而且抖动严重,高峰期能到 600ms。
原因:Render 的服务器主要在美国(俄勒冈、俄亥俄),国内访问要跨太平洋,延迟自然高。
2. 免费版会"休眠"(坑)
Render 免费版有个大坑:15 分钟无访问会自动休眠。
下次访问时要"唤醒",需要 30-60 秒。
对于博客来说,深夜没人访问,第二天早上第一个访客要等 1 分钟才能打开,体验极差。
3. 构建有时候很慢
虽然大部分时候 3-5 分钟部署完,但偶尔会遇到"构建排队",要等 10-20 分钟。
后来发现是因为免费版优先级低,高峰期要排队。
4. 国内无节点
Render 没有亚太节点(只有美国),更别说国内节点了。
看了一下官方 Roadmap,短期内也不会加。
为什么换到 ESA
触发点:用户投诉
有天一个读者留言:"你这博客打开好慢,是不是挂了?"
我自己测了一下,确实慢。而且看 Google Analytics,95% 的访客都在国内。
这时候意识到:虽然 Render 部署方便,但用户体验不好,就没意义了。
决定试试 ESA
正好我的域名刚完成 ICP 备案,可以用阿里云 ESA 的国内节点了。
看了一下 ESA 免费版:
- 50GB 流量/月(比 Render 的 100GB 少,但对我够用)
- 国内节点(延迟低)
- 免费 DDoS/WAF 防护
- 不会休眠
决定试试。
迁移过程(比想象中简单)
最大的顾虑:失去自动部署
Render 最大的优势是自动部署,ESA 没有这个功能。
但我发现可以用 GitHub Actions 实现,效果一样。
迁移步骤
1. 本地构建测试
先在本地跑一下构建:
npm run build
2. 开通 ESA + 配置 OSS
- 阿里云控制台开通 ESA(免费版)
- 创建 OSS Bucket 作为源站
- ESA 添加站点,源站指向 OSS
3. 配置 GitHub Actions
创建 .github/workflows/deploy.yml:
name: Deploy to ESA
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Upload to OSS
uses: manyuanrong/setup-ossutil@v3.0
with:
endpoint: oss-cn-hangzhou.aliyuncs.com
access-key-id: ${{ secrets.OSS_KEY_ID }}
access-key-secret: ${{ secrets.OSS_KEY_SECRET }}
- name: Sync files
run: |
ossutil cp -r dist/ oss://my-blog-bucket/ --update
- name: Purge CDN cache
run: |
# 可选:刷新 CDN 缓存
ossutil cdn-purge oss://my-blog-bucket/
配置一次后,以后 push 代码就自动部署,和 Render 一样方便。
4. 切换 DNS
把域名的 CNAME 记录从 Render 改成 ESA 提供的接入域名。
等 DNS 生效(10-30 分钟),完成。
总耗时:2 小时左右(主要是配置 GitHub Actions)。
ESA 的使用体验
优点(让我满意的地方)
1. 国内访问快了 20 倍
迁移后我又测了一遍:
| 地点 |
Render |
ESA (备案后) |
提升 |
| 北京 |
420ms |
18ms |
95.7% ↓ |
| 上海 |
380ms |
15ms |
96.1% ↓ |
| 广州 |
410ms |
22ms |
94.6% ↓ |
| 成都 |
460ms |
28ms |
93.9% ↓ |
| 深圳 |
390ms |
16ms |
95.9% ↓ |
从 400ms 降到 20ms,快了 20 倍。
自己打开博客也觉得"秒开",用户反馈也说快多了。
下面是实测的国内多地访问延迟对比图:

2. 不会休眠
ESA 是纯 CDN,没有"休眠"这个概念。
凌晨 3 点访问和下午 3 点访问,速度一样快。
3. 免费 50GB 够用
虽然比 Render 的 100GB 少,但对我的博客(10GB/月)完全够用。
如果超了,按量付费(¥0.24/GB),也比 Render 付费版便宜。
4. 安全能力开箱即用
ESA 免费版自带:
- DDoS 防护(20Gbps)
- WAF 规则
- CC 攻击防护
- IP/地域封禁
- Bot 管理
Render 这些都没有,要自己接 Cloudflare。
5. GitHub Actions 不限制构建时间
Render 免费版有 750 小时/月限制(虽然对个人够用)。
GitHub Actions 公开仓库有 2000 分钟/月,而且只计算运行时间。
我的博客构建一次 2-3 分钟,一个月构建 600 次都够。
缺点(需要接受的地方)
1. 需要备案
如果你想用 ESA 的国内节点,域名必须有 ICP 备案。
备案流程:
- 在阿里云提交备案申请
- 填资料、拍照
- 等审核(7-15 天)
这是国内政策要求,所有国内 CDN 都要备案。
如果你不想备案:
- 继续用 Render(海外节点)
- 用 ESA 海外节点(但延迟会高)
2. 需要自己配置 CI/CD
不像 Render 那样"连接 GitHub 就完事",ESA 需要自己配置 GitHub Actions。
但说实话,配置一次也就 1-2 小时,之后就是全自动的。
对于有一定动手能力的开发者,这不是大问题。
3. 控制台相对复杂
Render 的控制台很简洁,ESA 的控制台功能多、选项多。
但用几次就熟悉了,而且是中文界面,看文档也方便。
我的选择逻辑
选 Render 的理由
如果你是:
- ✅ 海外用户为主(80% 以上)
- ✅ 想要 0 配置部署(不想折腾 CI/CD)
- ✅ 域名没备案(ESA 国内节点需要备案)
- ✅ 需要后端服务(Render 支持 Web Service/Database)
- ✅ 不在乎延迟(400ms 可以接受)
那 Render 是更好的选择。
选 ESA 的理由(我的情况)
如果你是:
- ✅ 国内用户为主(80% 以上)
- ✅ 域名已备案或愿意备案
- ✅ 不介意配置 CI/CD(一次配置永久生效)
- ✅ 看重访问速度(延迟低是第一优先级)
- ✅ 纯静态站点(博客/文档/作品集)
- ✅ 流量不大(50GB/月以内)
那 ESA 免费版更合适。
常见问题
Q1:Render 自动部署很方便,ESA 怎么实现?
A:用 GitHub Actions。
配置一次后,效果和 Render 一样:push 代码就自动构建、部署。
我上面贴了完整配置,复制粘贴改几个参数就能用。
Q2:Render 有 100GB,ESA 只有 50GB,不够用怎么办?
A:对个人博客来说,50GB 完全够用。
我的博客月访问量 3 万,流量才 10GB。除非你有大量图片/视频,否则 50GB 够。
如果真超了:
- Render:继续免费,但可能被限速
- ESA:按量付费(¥0.24/GB),透明度高
Q3:我不想备案,但想要国内速度快,怎么办?
A:没办法,国内 CDN 都需要备案,这是政策要求。
选择:
- 去备案(虽然麻烦,但一劳永逸)
- 用海外 CDN + 国内优化(但要付费)
- 接受延迟高,继续用 Render/Vercel
Q4:Render 的"休眠"问题怎么解决?
A:Render 免费版的 Web Service 会休眠,但静态站点不会休眠。
我之前说的"休眠"是针对 Web Service(后端应用)。
如果你只是部署静态博客,Render 不会休眠。
但国内延迟高的问题还是存在(400ms)。
Q5:GitHub Actions 会不会也有限制?
A:有,但很宽松。
GitHub Actions 免费额度(公开仓库):
- 2000 分钟/月
- 20 个并发任务
- 500MB 存储
我的博客构建一次 2-3 分钟,一个月构建 600 次都够。
Render 虽然构建时间不限,但优先级低,高峰期要排队。
成本对比(真实数据)
Render 免费版
- 流量:100GB/月(静态站点)
- 休眠:Web Service 会休眠,静态站点不会
- 构建时间:不限(但优先级低)
- 安全:无 DDoS/WAF
- 实际成本:$0
但要承受:国内延迟 400ms
ESA 免费版
- 流量:50GB/月
- 休眠:不会休眠
- 构建时间:无限制(自己构建)
- 安全:DDoS/WAF/CC 防护全免费
- 实际成本:¥0
额外获得:国内延迟 20ms
我的选择
对于国内用户为主的博客,速度 > 部署便利性。
Render 的自动部署确实方便,但国内延迟 400ms 让用户体验很差。
ESA 虽然要配置 GitHub Actions,但一次配置后就是全自动的,而且国内访问快 20 倍。
为了用户体验,值得花 1-2 小时配置一次。
总结
Render 是好产品
我没有黑 Render 的意思,它确实很棒:
- 部署体验无敌(push 代码就完事)
- 免费版功能多(静态站点 + Web Service + Database)
- 支持多种框架
- 文档质量高
- 适合海外用户
如果你的用户主要在海外,Render 是首选。
但对我来说,ESA 更合适
我的选择逻辑很简单:
- 95% 用户在国内 → 速度最重要
- Render 延迟 400ms → 用户体验差
- ESA 延迟 20ms → 快了 20 倍
- 虽然要配置 CI/CD → 但一次配置永久生效
用户体验 > 部署便利性。
最终建议
选择取决于你的用户在哪:
| 场景 |
推荐方案 |
理由 |
| 海外用户为主 |
Render |
自动部署 + 海外速度快 |
| 国内用户为主 |
ESA |
国内速度快 20 倍 + 免费 |
| 需要后端服务 |
Render |
支持 Web Service/Database |
| 纯静态站点 |
ESA |
CDN 专业 + 国内速度快 |
| 不想备案 |
Render |
不需要备案 |
没有绝对的好坏,只有适不适合你的场景。
如何领取 ESA 免费版
- 打开阿里云官网:https://www.aliyun.com
- 搜索"ESA"或"边缘安全加速"
- 点击"免费试用"
- 按提示开通即可
或者直接用这个链接:http://s.tb.cn/e6.0Fu67m
参考链接:
说明:本文是我的个人真实体验,不是广告。我从 Render 迁移到 ESA 主要是因为国内访问速度问题,分享出来供大家参考。