EdgeOne加速Vercel配置及踩坑
EdgeOne加速Vercel配置及踩坑
Lynx Frost用过 Vercel 的开发者大概都对它的便捷性印象深刻 —— 将 Node 项目推送到 GitHub 后,几分钟内就能自动构建部署并提供访问服务,免费计划也足够日常折腾。但随着 Vercel 域名 DNS 污染越来越频繁,不挂梯子几乎无法访问,好好的免费资源就这么闲置了实在可惜。于是我尝试用腾讯云 EO(EdgeOne)对其进行加速,过程中踩了个典型的坑,最终摸索出解决方案,特此记录分享给有同样需求的朋友。
一、踩坑现场:自信配置却遭遇 522 死循环
核心诉求很明确:利用腾讯云 EO 的免费计划,解决 Vercel 域名访问受阻的问题。我想当然地认为加速配置的关键就是 “回源 Host 填写 Vercel 提供的默认域名(如 xxx-project.vercel.app)”。
按照这个思路配置完成后,满心期待地等待部署结束,结果访问时直接弹出 522 错误 —— 服务器无响应。反复检查配置参数、重新部署项目,甚至更换网络环境测试,522 错误始终如影随形,完全摸不着头脑。
二、问题本质:多层 CDN 嵌套导致回源失效
我翻了一圈 CDN 加速的核心原理文档,再结合 Google 到的案例,终于理清了 522 错误的根源,本质是多层 CDN 嵌套引发的回源链路异常:
- Vercel 默认域名的本质:xxx-project.vercel.app 并不是直接指向项目服务器的 “源站地址”,而是 Vercel 自家的 CDN 边缘节点域名。当我把这个域名填作 EO 的回源 Host 时,EO 实际是向 Vercel 的 CDN 节点发起回源请求,而非项目的真实源站。
- 522 错误的触发逻辑:Vercel 的 CDN 节点会校验请求的 Host 头是否匹配其配置的域名,而 EO 向 Vercel CDN 发起的请求,其 Host 头与 Vercel 配置不兼容,再加上跨地域链路的延迟,最终导致回源超时,返回 522 错误。
- 我的认知误区:之前误以为 EO 加速是简单的 “反代”,只要填个目标域名就行,忽略了源站是否本身已接入 CDN 这一关键前提。
三、正确配置:两步搞定 Vercel 加速
找到问题根源后,解决方案就清晰了 —— 跳过 Vercel 的 CDN 层,让 EO 直接指向项目的真实源站。具体配置步骤如下,同样适用于加速其他自带 CDN 的海外平台(如 Netlify、GitHub Pages):
1. 获取 Vercel 真实回源 CNAME
首先要拿到 Vercel 项目的 “原始源站 CNAME”(非 CDN 域名),方法很简单:
- 登录 Vercel 控制台,添加你自己的域名,会给你一个Vercel的CNAME值;
- 这个CNAME值是 Vercel 源站得 CNAME,我们不要解析这个CNAME值;
2. 腾讯云 EO 核心配置
进入腾讯云 EO 控制台,添加与在Vercel添加的相同的自己的域名,重点修改以下两项:
| 配置项 | 正确取值 | 配置目的 |
|---|---|---|
| 回源域名 | 第一步获取的 Vercel 原始 CNAME | 跳过 Vercel CDN 层,直接指向真实源站 |
| Host 头 | 你在Vercel添加的自己的域名 | 让 Vercel 源站正确识别请求来源,通过校验 |
3. 域名控制台添加 CNAME 解析
到域名控制台,添加 CNAME 解析,注意填的是EO平台给你的CNAME值,而不是Vercel给你的CNAME值。
四、拓展:海外 CDN 加速通用逻辑
这次踩坑让我总结出一个通用规律:当需要用 CDN 加速海外平台时,若目标平台自带 CDN,绝对不能直接用其公开的 CDN 域名作为回源地址。正确的逻辑是:
- 在平台添加自己的域名,获取平台的CNAME值,不要做解析;
- 在CDN控制台,回源地址填平台的CNAME值,Host 头填平台添加的域名;
- 在域名控制台,添加CNAME解析,值填CDN给你的CNAME值;
希望这篇踩坑记能帮到同样被 Vercel 访问问题困扰的朋友,少走弯路,充分利用好免费的技术资源~


