课程名称:计算机网络应用 核心摘要:本讲围绕阿里云 CDN 域名管理中的「回源配置」展开,讲解边缘节点在缓存未命中或过期时向源站回源的完整链路。重点梳理回源 HOST、回源协议、OSS 私有 Bucket 回源、回源 SNI、回源超时、回源请求头/响应头、回源 URI 改写与回源参数改写等配置项的适用场景与配置方法。
- 已添加的加速域名会对应一个 CNAME,启用 CDN 加速必须完成 CNAME 配置,配置后约 10 分钟延迟才会更新状态。
- 在「域名管理 → 管理」入口下,左侧提供大量配置项,本讲聚焦实际工作中常用的回源配置模块。
- 回源触发条件:仅当边缘节点服务器上的缓存不存在或缓存已过期时,边缘节点才会向**源站(Origin)**发起回源请求。
- 回源方向:用户请求 → 边缘节点 → (缓存未命中)→ 源站。
- 回源过程是一个只读过程:边缘节点从源站拉取数据填充缓存,再返回给用户。
| 术语 | 含义 |
|---|
| 源站(Origin) | CDN 回源时获取数据的真实服务器(OSS / IP / 域名源站等) |
| 边缘节点 | CDN 分布式缓存节点,直接面向用户 |
| 回源 HOST | CDN 节点回源时访问 Web 服务器所使用的域名 |
| 回源协议 | CDN 节点回源时所使用的访问协议(HTTP / HTTPS / 协议跟随) |
| SNI | Server Name Indication,基于 TLS 协议的扩展,用于在同一 IP 托管多域名时指明目标域名 |
| 配置项 | 作用 / 适用场景 | 关键说明 |
|---|
| 回源 HOST | 指定回源时访问 Web 服务器的域名 | 可选择:① 与加速域名一致;② 与源站域名一致;③ 自定义域名。结合生产环境场景选择 |
| 回源协议 | 决定回源使用 HTTP 还是 HTTPS | 已启用证书 → HTTPS;未配证书 → HTTP;协议跟随(推荐)→ 跟随源站支持的访问协议 |
| 阿里云 OSS 私有 Bucket 回源 | 源站为阿里云 OSS 云存储时的回源 | 仅当源站为 OSS(阿里云对象存储)时才涉及;回源过程为只读;OSS 通常使用独立域名进行数据拉取 |
| 回源 SNI | 源站 IP 绑定多域名(虚拟主机)场景下指明目标域名 | 基于 TLS 协议扩展;仅在以 HTTPS 协议回源时生效;可指定 Server Name(如 education.lagou.com)以确定访问哪个虚拟主机 |
| 回源超时时间 | 控制回源请求的超时阈值 | 默认 30 秒 |
| 回源 HTTP 请求头 | 对回源请求头进行增删改查 | 推荐在「新版」配置入口中操作;可自定义新增 header,也可复用原有 header |
| 回源 HTTP 响应头 | 对源站返回的响应头进行增删改查 | 同样支持自定义修改 |
| 回源 URI 改写 | 修改回源请求的 URI | 当回源请求 URI 与源站 URI 不匹配时使用;支持配置多条规则;支持正则表达式 |
| 回源参数改写 | 修改回源请求 URL 中的参数 | 当请求 URL 携带的参数与发送给源站的参数不一致时使用;支持规则配置与实例说明 |
已启用 SSL 证书 ──► 选择 HTTPS 回源
未配置证书 ──► 选择 HTTP 回源
通用推荐方案 ──► 选择「协议跟随」(跟随源站支持的访问协议)
- 应用场景:源站服务器一个 IP 绑定了多个域名(即虚拟主机)。
- 作用机制:当 CDN 节点以 HTTPS 协议回源时,通过 SNI 指定
Server Name,告知源站本次请求要访问的具体域名。 - 生效前提:必须以 HTTPS 协议回源,SNI 配置才有效(基于 TLS 扩展)。
边缘节点(缓存未命中)
│ 回源(只读)
▼
阿里云 OSS 服务器(独立域名)
│ 存储资源(如视频、图片)
▼
返回数据 → 边缘节点缓存 → 响应用户
典型案例:在线教育平台(如拉勾教育)将教师授课视频存储在阿里云 OSS 云存储中,源站本身不持有资源,需通过 OSS 独立域名回源拉取。
| 维度 | 回源 URI 改写 | 回源参数改写 |
|---|
| 触发条件 | 回源请求 URI 与源站 URI 不匹配 | 请求 URL 参数与发送给源站的参数不一致 |
| 修改对象 | URI 路径部分 | URL 查询参数部分 |
| 规则特性 | 支持多规则、支持正则表达式 | 支持多规则、支持正则表达式 |
| 使用频率 | 特殊场景才配置 | 特殊场景才配置 |
阿里云 CDN 控制台
└─ 域名管理
└─ 加速域名列表
└─ 单击「管理」
└─ 左侧菜单「回源配置」
├─ 回源 HOST
├─ 回源协议
├─ 阿里云 OSS 私有 Bucket 回源
├─ 回源 SNI
├─ 回源超时时间(默认 30s)
├─ 回源 HTTP 请求头(推荐新版入口)
├─ 回源 HTTP 响应头
├─ 回源 URI 改写
└─ 回源参数改写
# 可选值
1. 与加速域名一致 # 回源 HOST = 加速域名
2. 与源站域名一致 # 回源 HOST = 源站域名
3. 自定义域名 # 回源 HOST = 自定义值(按生产环境需要填写)
# 支持的操作类型(增删改查)
- 新增(Add):自定义添加新的 header
- 修改(Modify):对原有 header 值进行覆盖
- 删除(Delete):移除指定 header
- 查询(Read):查看当前生效的 header 列表
# 请求头:可使用原有 header,也可自定义新增
# 响应头:对源站返回的响应头做对应增删改查
- 【考点】回源触发条件:仅当边缘节点缓存不存在或已过期时才回源,命中缓存则直接返回,不回源。
- 【考点】回源 HOST 的三种取值方式:加速域名、源站域名、自定义域名。
- 【考点】回源协议「跟随」的含义:跟随的是源站支持的访问协议,而非用户请求协议。
- 【易错点】回源 SNI 生效条件:必须以 HTTPS 回源才有效,因为 SNI 是 TLS 协议扩展;HTTP 回源时配置无效。
- 【易错点】OSS 私有 Bucket 回源:仅当源站为阿里云 OSS时才涉及,且回源过程为只读。
- 【易错点】URI 改写 vs 参数改写:URI 改写针对路径,参数改写针对 URL 查询参数,二者触发条件不同,勿混淆。
- 【记忆点】回源超时默认值:30 秒。
- 【面试题】简述 CDN 回源的全过程:用户请求 → 边缘节点检查缓存 → 未命中/过期 → 携带回源 HOST、按回源协议向源站发起请求(HTTPS 时携带 SNI)→ 源站响应 → 边缘节点缓存并返回用户。
- 【面试题】为何需要回源 SNI:源站 IP 常以虚拟主机方式绑定多域名,HTTPS 回源时需通过 SNI 指明
Server Name,源站才能正确返回对应域名的证书与内容。
- 回源 URI 改写与回源参数改写在生产环境中的具体业务案例有哪些?(课程仅给出触发条件,未演示完整配置实例)
- 当源站为 IP 源站而非域名源站时,回源 HOST 与回源 SNI 应如何配合配置?
- 回源超时 30 秒为默认值,在高延迟源站或大文件回源场景下,推荐的超时阈值应如何调整?
- 回源 HTTP 请求头的「新版」与「旧版」配置入口差异是什么?为何推荐使用新版?
- 后续课程是否涉及回源重试、301/302 跟随等回源高级配置?