我的情况
我是个人开发者,有个 Next.js 技术博客(静态导出),月访问量 2-3 万,流量 8GB 左右。
之前部署在 Netlify 上,用了一年多。最近换到了阿里云 ESA,主要原因:国内访问太慢了。
这篇文章记录一下为什么换、怎么换、换了之后的体验。不是软文,纯个人经历。
为什么一开始选 Netlify
1. Git push 就自动部署(太爽了)
Netlify 最大的优势就是部署体验无敌:
1. 连接 GitHub 仓库
2. 配置构建命令(npm run build)
3. push 代码
4. 自动构建、自动部署、自动上线
全程自动,啥都不用管。
第一次用的时候我震惊了:"这也太方便了吧!"
2. 免费 100GB 流量(够用)
Netlify 免费版每月 100GB 流量,对于我的小博客(8GB/月)来说完全够用。
比 GitHub Pages 的 100GB 软限制更明确,也有详细的流量统计。
3. 前端开发者都在用(跟风)
当时看技术文章、YouTube 视频,前端开发者都在用 Netlify 部署:
- React 博客 → Netlify
- Vue 项目 → Netlify
- Next.js 站点 → Netlify
感觉不用 Netlify 就不是"现代"前端开发者了。
4. 不需要备案(当时域名没备案)
我的域名当时还没备案,Netlify 不需要备案就能用自定义域名,很方便。
Netlify 的实际体验
优点(确实很棒)
1. 部署体验完美
从 push 代码到上线,全程 2-3 分钟,不用操心任何事:
- 自动检测到 push
- 自动触发构建
- 自动部署到 CDN
- 自动清除缓存
控制台还能看到实时构建日志,部署失败会邮件通知。
2. 预览环境很棒
每个 Pull Request 都会自动生成预览链接,测试完再合并到主分支。
这个功能对于团队协作很有用(虽然我是个人项目,但偶尔也会用到)。
3. 免费 HTTPS 证书
Let's Encrypt 证书自动签发、自动续期,不用操心。
4. 控制台简洁
Netlify 的控制台设计很好,找功能很快,不像有些平台菜单套菜单。
缺点(让我最终放弃的原因)
1. 国内访问慢(最致命)
这是我换掉 Netlify 的主要原因。
我用站长工具测了一下国内访问速度:
- 北京:TTFB 320ms
- 上海:TTFB 380ms
- 广州:TTFB 350ms
- 成都:TTFB 420ms
延迟太高了,用户打开页面要等半天。
而且抖动很严重,有时候能到 500ms+。
原因:Netlify 在国内没有节点,所有请求都要跨境到新加坡或美国,经过国际出口,延迟自然高。
2. 构建时间有限制
Netlify 免费版每月 300 分钟构建时间。
我的 Next.js 博客构建一次大概 3-4 分钟,一个月最多能构建 75-100 次。
对于个人博客来说够用,但如果频繁更新或者有多个项目,可能会超。
3. Serverless Functions 限制
Netlify 提供 Serverless Functions(类似 AWS Lambda),但免费版限制:
- 125,000 次调用/月
- 100 小时执行时间/月
我没怎么用这个功能,但对于有后端需求的项目,可能不够。
4. 偶尔会有小故障
用了一年多,遇到过 2-3 次 Netlify 的小故障(构建失败、部署慢),虽然很快恢复,但还是会担心。
为什么换到 ESA
触发点:用户反馈慢
有天一个读者留言:"你这博客打开好慢啊,是不是服务器在国外?"
我自己测了一下,确实慢。而且看 Google Analytics,90% 的访客都在国内。
这时候我意识到:虽然 Netlify 部署方便,但用户体验不好,就失去意义了。
决定试试 ESA
正好我的域名刚完成 ICP 备案,可以用阿里云 ESA 的国内节点了。
看了一下 ESA 免费版的配置:
- 50GB 流量/月(比 Netlify 的 100GB 少,但对我够用)
- 国内节点(延迟低)
- 免费安全防护(DDoS/WAF)
决定试试。
迁移过程(比想象中简单)
最大的顾虑:失去自动部署
Netlify 最大的优势是自动部署,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@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Upload to OSS
uses: manyuanrong/setup-ossutil@v2.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 out/ oss://my-blog-bucket/ --update
配置一次,以后 push 代码就自动部署,和 Netlify 一样方便。
4. 切换 DNS
把域名的 CNAME 记录从 Netlify 改成 ESA 提供的接入域名。
等 DNS 生效(10-30 分钟),完成。
总耗时:2 小时左右(主要是写 GitHub Actions 配置)。
ESA 的使用体验
优点(让我满意的地方)
1. 国内访问快了 10 倍
迁移后我又测了一遍:
| 地点 |
Netlify |
ESA (备案后) |
提升 |
| 北京 |
320ms |
18ms |
94% ↓ |
| 上海 |
380ms |
15ms |
96% ↓ |
| 广州 |
350ms |
20ms |
94% ↓ |
| 成都 |
420ms |
28ms |
93% ↓ |
从 300-400ms 降到 15-30ms,快了 10 倍以上。
用户体感非常明显,自己打开博客也觉得"秒开"。
下面是实测的国内多地访问延迟对比图:

2. 免费 50GB 够用
虽然比 Netlify 的 100GB 少,但对我的博客(8GB/月)来说完全够用。
如果真超了,可以按量付费(¥0.24/GB),也比 Netlify 超量后的价格便宜。
3. 安全能力开箱即用
ESA 免费版自带:
- DDoS 防护(20Gbps)
- WAF 规则
- CC 攻击防护
- IP/地域封禁
Netlify 这些都没有,要自己接 Cloudflare 或其他 WAF。
4. GitHub Actions 部署也很稳
虽然不是 Netlify 那种"0 配置",但 GitHub Actions 配置一次后,体验一样:
- push 代码 → 自动构建 → 自动上传 → 自动刷新 CDN
而且 GitHub Actions 免费额度很高(2000 分钟/月),不用担心超。
缺点(需要接受的地方)
1. 需要备案
如果你想用 ESA 的国内节点,域名必须有 ICP 备案。
备案流程:
- 在阿里云提交备案申请
- 填资料、拍照
- 等审核(7-15 天)
这是国内政策要求,所有国内 CDN 都要备案。
如果你不想备案,可以:
- 继续用 Netlify(海外节点)
- 用 ESA 海外节点(但延迟会高一些)
2. 需要自己配置部署
不像 Netlify 那样"连接 GitHub 就完事",ESA 需要自己配置 GitHub Actions。
但说实话,配置一次也就 1-2 小时,之后就是全自动的。
对于有一定动手能力的开发者,这不是大问题。
3. 控制台相对复杂
Netlify 的控制台很简洁,ESA 的控制台功能多、选项多,一开始会有点懵。
但用几次就熟悉了,而且中文界面,看文档也方便。
我的选择逻辑
选 Netlify 的理由
如果你是:
- ✅ 海外用户为主(80% 以上)
- ✅ 想要 0 配置部署(不想折腾 CI/CD)
- ✅ 域名没备案(ESA 国内节点需要备案)
- ✅ 流量较大(50-100GB/月,免费版够用)
- ✅ 需要 Serverless Functions
那 Netlify 是更好的选择。
选 ESA 的理由(我的情况)
如果你是:
- ✅ 国内用户为主(70% 以上)
- ✅ 域名已备案或愿意备案
- ✅ 不介意配置 CI/CD(一次配置永久生效)
- ✅ 看重访问速度(延迟低是第一优先级)
- ✅ 流量不大(50GB/月以内)
那 ESA 免费版更合适。
常见问题
Q1:Netlify 自动部署很方便,ESA 怎么实现?
A:用 GitHub Actions。
配置一次后,效果和 Netlify 一样:push 代码就自动构建、部署。
我上面贴了完整的 GitHub Actions 配置,复制粘贴改几个参数就能用。
Q2:ESA 只有 50GB,Netlify 有 100GB,不够用怎么办?
A:对个人博客来说,50GB 完全够用。
我的博客月访问量 2-3 万,流量才 8GB。除非你有大量图片/视频,否则 50GB 够用。
如果真超了:
- Netlify:超量后要付费,而且价格不便宜
- ESA:按量付费(¥0.24/GB),透明度高
Q3:我不想备案,但想要国内速度快,怎么办?
A:没办法,国内 CDN 都需要备案,这是政策要求。
选择:
- 去备案(虽然麻烦,但一劳永逸)
- 用海外 CDN + 国内优化(比如 Cloudflare 的 China Network,但要付费)
- 接受延迟高,继续用 Netlify/Vercel
Q4:GitHub Actions 会不会也有限制?
A:有,但很宽松。
GitHub Actions 免费额度:
我的博客构建一次 3-4 分钟,一个月构建 500 次都够。
Netlify 只有 300 分钟/月,GitHub Actions 是 2000 分钟/月,宽裕多了。
Q5:迁移会影响 SEO 吗?
A:不会,只要域名不变。
迁移只是换了 CDN,域名和内容都没变,对 SEO 没影响。
而且国内访问变快,Google PageSpeed 分数还提升了,对 SEO 是好事。
成本对比(真实数据)
虽然两者都有免费版,但我们对比一下"真实成本":
Netlify 免费版
- 流量:100GB/月
- 构建时间:300 分钟/月
- Functions:125K 次/月
- 带宽:免费
- 实际成本:$0
但要承受:国内延迟 300-400ms
ESA 免费版
- 流量:50GB/月
- 构建时间:无限制(自己构建)
- EdgeScript:不限次数
- 安全能力:全免费
- 实际成本:¥0
额外获得:国内延迟 15-30ms
我的选择
对于国内用户为主的博客,速度 > 部署便利性。
Netlify 的自动部署确实方便,但国内延迟 300ms 让用户体验很差。
ESA 虽然要配置 GitHub Actions,但一次配置后就是全自动的,而且国内访问快 10 倍。
为了用户体验,值得花 1-2 小时配置一次。
总结
Netlify 是好产品
我没有黑 Netlify 的意思,它确实很棒:
- 部署体验无敌(Git push 就完事)
- 免费版流量多(100GB)
- 预览环境、回滚等功能很实用
- 适合海外用户
如果你的用户主要在海外,Netlify 是首选。
但对我来说,ESA 更合适
我的选择逻辑很简单:
- 90% 用户在国内 → 速度最重要
- Netlify 延迟 300ms → 用户体验差
- ESA 延迟 15ms → 快了 10 倍
- 虽然要配置 CI/CD → 但一次配置永久生效
用户体验 > 部署便利性。
最终建议
选择取决于你的用户在哪:
| 场景 |
推荐方案 |
理由 |
| 海外用户为主 |
Netlify |
自动部署 + 海外速度快 |
| 国内用户为主 |
ESA |
国内速度快 10 倍 + 免费 |
| 国内外均衡 |
ESA(国内) + Netlify(海外) |
DNS 分流,两者结合 |
| 不想备案 |
Netlify |
不需要备案 |
没有绝对的好坏,只有适不适合你的场景。
参考链接:
说明:本文是我的个人真实体验,不是广告。我从 Netlify 迁移到 ESA 主要是因为国内访问速度问题,分享出来供大家参考。