国庆节10月1日
--


Vercel 部署的网站国内访问慢?用源站域名分离法给 Vercel 套上 EdgeOne 加速,配置详解 + 踩坑记录。

Vercel 部署网站很方便,但国内访问速度一直是个老大难问题——Vercel 的节点在海外,国内用户访问动不动几秒甚至超时。
能不能给 Vercel 套一个国内 CDN(EdgeOne)加速?能,但有一个坑:Vercel 的自定义域名验证机制要求域名的 DNS 必须指向 xxx.vercel.app,否则拒绝服务——和 CDN 要求的”DNS 指向 CDN”冲突。
这篇文章分享我实际验证可行的方案:源站域名分离法——给 Vercel 一个”源站域名”,用户访问的域名走 EdgeOne 加速。
先看加速前后的效果对比:


Vercel 对自定义域名是持续监控 DNS 的:
xxx.vercel.app → Vercel 显示 Valid(正常服务)一个域名只有一条 CNAME——不可能同时指向 Vercel 和 CDN。所以”直接套”是走不通的(我一开始就踩了这个坑,访问一直报 522)。
核心思路:给 Vercel 绑定一个专门的”源站域名”,CDN 回源到它;用户访问的域名走 CDN:
1用户访问 cms.tsh520.cn2 ↓ DNS 解析(指向 EdgeOne)3EdgeOne 边缘节点(国内加速/缓存)4 ↓ 回源(Host: cms-origin.tsh520.cn)5Vercel(绑定了 cms-origin.tsh520.cn)✅ Validcms-origin.tsh520.cn(DNS 指向 vercel.app → Valid)cms.tsh520.cn(用户访问的域名)cms-origin.tsh520.cn(Vercel 认它)cms-origin.tsh520.cncms-origin → cms.vercel.app(CNAME)cms.tsh520.cn 绑定(它交给 EdgeOne,留着会一直显示 Invalid)cms.tsh520.cn| 配置项 | 填什么 |
|---|---|
| 源站类型 | IP/域名 |
| 源站地址 | cms-origin.tsh520.cn |
| 回源协议 | HTTPS |
| 回源端口 | 443 |
| 回源 HOST 头 | 使用源站域名(cms-origin.tsh520.cn) |
⚠️ 回源 HOST 头是最容易错的地方:必须填源站域名(
cms-origin.tsh520.cn),不能选”使用加速域名”——否则 Vercel 收到的是加速域名(没绑定)会拒绝请求。
把 cms.tsh520.cn 的 CNAME 从 cms.vercel.app 改成 EdgeOne 给的加速地址(EdgeOne 站点详情页会显示,类似 cms.tsh520.cn.eo.dnse2.com)。
⚠️ 是修改这条记录,不是新增第二条(一个域名只能有一条 CNAME)。
如果应用配置了回调域名/BASE_URL(比如后台系统的 OAuth 回调),统一用用户访问的加速域名:
BASE_URL = https://cms.tsh520.cn(不是 cms-origin)https://cms.tsh520.cn/api/auth/callback这样登录、回调都走加速域名,EdgeOne 会正确回源。
| 坑 | 现象 | 解决 |
|---|---|---|
| 直接套 CDN | 访问报 522(Vercel 拒绝) | 源站域名分离 |
| 回源 HOST 头用加速域名 | Vercel 不认,回源失败 | 改成源站域名 |
| DNS 加了两条 CNAME | 解析冲突 | 修改旧记录,不新增 |
| Vercel 域名验证时序 | 先指向 vercel.app 等 Valid,再切 CDN | 按步骤①→④ 顺序 |
https://cms.tsh520.cn → 正常打开| 要点 | 说明 |
|---|---|
| 核心思路 | 源站域名(Vercel 绑定)与访问域名(CDN)分离 |
| 关键配置 | 回源 HOST 头 = 源站域名 |
| 应用配置 | BASE_URL/回调地址用加速域名 |
| 适用场景 | Vercel / Netlify 等托管平台 + 国内 CDN |
这套方案我实测跑通了:Vercel 托管的博客后台,套上 EdgeOne 后国内访问流畅,登录、编辑全部正常。如果国内访问 Vercel 应用慢,值得一试。
如果你喜欢,那么欢迎来到我的世界!
了解更多暂未播放



"所有的相遇都是久别重逢。"—— 未知


