摘要:按阿里云 CDN 公开文档,梳理回源 HOST、回源 SNI、回源协议/证书与缓存键不一致时常见的 502/404/重定向循环怎么逐项核对。查询日期 2026-10-30;只放官网普通链接(affiliate_later)。
依据:阿里云《配置回源 HOST》《配置回源 SNI》《配置回源协议》《CDN 回源失败排查》《自定义 Cache Key》。查询日期:2026-10-30(北京时间)。只放官网普通链接(
affiliate_later);不写单价。
站点已经接了 CDN,用户却看到 502、404,或浏览器报「重定向次数过多」。本站写过 CDN 回源与缓存键/刷新预热入门,那篇偏规则总览。本文专讲「回源校验失败」三条线:回源 HOST、HTTPS/SNI 证书、缓存键对不上刷新。
1. 先分清:HOST、SNI、回源协议各管哪一层
| 配置项 | 作用层 | 常见配错后果 |
|---|---|---|
| 回源 HOST | HTTP 请求头 Host,决定源站虚拟主机(如 Nginx server_name)命中哪套站点 | 404、403、打到默认站、内容串站 |
| 回源 SNI | TLS 握手时告诉源站要哪张证书(同一 IP 多域名时必需) | 握手失败、502/503、证书名对不上 |
| 回源协议 | CDN→源站走 HTTP / HTTPS / 跟随 | 源站只开 80 却 HTTPS 回源 → 502;HTTP 回源碰上强制跳 HTTPS → 重定向循环 |
| 缓存键 | 节点认定「是不是同一份文件」 | 改了源站却一直 HIT 旧页;或参数把缓存拆成无数份狂回源 |
阿里云文档写明:HTTPS 回源时,建议把回源 HOST 与回源 SNI 设成同一域名(通常是源站域名或加速域名,且须匹配源站证书与虚拟主机)。两者在控制台是两个独立开关,要分别改。

2. 回源 HOST:源站「认不认你这个站名」
控制台路径(阿里云口径):域名管理 → 目标加速域名 → 回源配置 → 默认回源 HOST。
域名类型常见三种:
- 加速域名:用用户访问的加速域名当 Host。
- 源站域名:用源站那条域名当 Host;源站填 IP 时该选项往往不可选。OSS 域名作源时,文档写明会同步按源站域名处理 Host。
- 自定义域名:手填;须是源站已绑定的域名,否则回源失败。
源站侧对照:
- Nginx:
server_name是否包含你填的 Host。 - Apache:
ServerName/ServerAlias。 - IIS:站点绑定里的「主机名」。
改完 Host 后,文档建议再做一次 URL 刷新,清掉可能已缓存的错误响应。
3. 回源 SNI 与 HTTPS 证书:握手过不去就别怪「源站挂了」

要点(按官方说明摘要):
- 源站同一 IP 绑了多个 HTTPS 站点时,CDN 以 HTTPS 回源须带 SNI,源站才知道返回哪张证书。
- SNI 只能填精确域名,不能填泛域名。
- 多源站时,控制台默认 SNI 往往共用一个值;要按源站分别设,需按文档申请或走其他能力。
- HOST 与 SNI 不一致(例如 Host 填源站域名、SNI 填加速域名)时,可能 SSL 握手失败或源站报错。
证书侧自检:
- 源站 443 是否真在听:
curl -Iv https://源站域名。 - 证书是否过期、域名是否覆盖回源用的名字。
- 自签名/内网 CA:CDN 回源校验常失败;文档建议换公有可信证书,或改回 HTTP 回源(评估风险后再选)。

回源协议默认关闭时,常按源站端口推断(443→HTTPS,80→HTTP)。打开后可选:
- HTTP:固定 80(或自定义端口);源站可不配证书。
- HTTPS:固定 443(或自定义);源站必须有效证书。
- 跟随:客户端 HTTPS 访问时 CDN 也 HTTPS 回源;源站若不支持 HTTPS,会握手失败。
注意:CDN 上给用户看的 HTTPS 证书,和「CDN 回源到源站」用的协议是两回事。客户端到节点可以全程 HTTPS,节点到源站仍可按你的选择走 HTTP。
4. 重定向循环:强制 HTTPS + HTTP 回源
文档常见场景:源站(宝塔/Nginx/WAF)开了 HTTP→HTTPS 强制跳转,CDN 却以 HTTP 回源。链路变成:用户 HTTPS → CDN → HTTP 回源 → 源站 301 到 HTTPS → 再经 CDN → 又 HTTP 回源……浏览器最终报 ERR_TOO_MANY_REDIRECTS。
可选其一:
- 方案 A:源站证书有效且 443 正常时,把回源改成 HTTPS,并配好 HOST/SNI。
- 方案 B:关闭源站强制跳转,保持 HTTP 回源;客户端到 CDN 仍可 HTTPS。评估「有人直连源站 IP」时是否还能接受无强制跳转。
无论选哪边,改完后做一次 URL 刷新,清掉已缓存的 301。
5. 502 / 404:按层缩小范围

文档对 502 列过这些高频因(摘要):
- 源站不支持 HTTPS,但 CDN 配了 HTTPS 回源或「跟随」碰上 HTTPS 客户端。
- 回源端口与源站监听不一致。
- 源站靠 SNI 选证书,CDN 未开或填错 SNI。
- 源站证书过期、域名不匹配、自签名。
404/403 更常落在 Host 不匹配虚拟主机,或源站鉴权/Referer 规则拦了 CDN。
缩小范围时建议:
curl -I https://加速域名/路径,看有没有X-Cache/Via等 CDN 特征头;没有则先查 DNS/CNAME。- 直连源站(hosts 绑定或
--resolve)对比结果。 - 对比 CDN 日志与源站访问日志:源站根本没收到请求,优先查网络/TLS/安全组;收到了再看路径、Host、状态码。
6. 缓存键:改对了源站,边缘仍吐旧页
缓存键不一致时,你会觉得「回源校验明明过了,页面还是错的」。常见坑:
- 追踪参数进了默认完整 URL 键,同一文件缓存成 N 份,命中率差、狂回源。
- 自定义 Cache Key 后,仍按「裸 URL」提交刷新,刷新没命中实际键。
- 状态码(404/302)缓存过久,错误页被钉在边缘。
规则与刷新/预热细节见前一篇 缓存键与刷新预热。发版常用顺序:先确认 HOST/SNI/协议 → 再刷新(必要时强制)→ 再预热热点 URL。
7. 排障清单(可勾)
- □
curl -I加速域名,确认请求真的进了 CDN - □ 直连源站对比:源站本身是否 200、证书是否有效
- □ 回源 HOST 是否等于源站
server_name/ 绑定主机名 - □ HTTPS 回源时:回源 SNI 已开,且与 HOST、证书名一致
- □ 回源协议/端口与源站监听一致(别「跟随」撞上未开 443 的源站)
- □ 源站是否强制 HTTP→HTTPS;若有,是否已改 HTTPS 回源或关掉强制跳
- □ 安全组/防火墙是否误拦 CDN 回源 IP 段
- □ 改配置后是否做了与实际缓存键一致的 URL 刷新
- □ 静态资源是否因 query 把 Cache Key 拆爆(对照缓存键文)
- □ 源站是 OSS 时:外网域名、Bucket 权限与 Host 是否按文档同步
证书与多站点入口可另看 免费 HTTPS 证书自动续期、Nginx 反向代理多站点与 502;安全组最小开放见 云服务器安全组 22/80/443。
相关阅读
- CDN 回源与缓存规则:缓存键、状态码与刷新预热
- Cloudflare 免费 CDN 与 SSL
- WordPress 提速:缓存插件与 CDN
- Nginx 反向代理多站点与 502
- 免费 HTTPS 证书怎么申请和自动续期
- 云服务器安全组最小开放
- 网站可用性监控:HTTP 与证书告警
风险提示
错误的 HOST/SNI/回源协议会导致全站或局部不可用;强制改 HTTP 回源会改变源站直连时的加密假设。配置以各云控制台与帮助中心当前页为准;腾讯云等厂商字段名可能不同,思路可对照,操作以该云文档为准。本文不构成采购或架构承诺。