1.背景需求
企业在 中国大陆 和 新加坡 各自部署了环境,整体服务逻辑一致。
需求:
- 中国用户 → 访问中国区源站。
- 海外用户 → 访问新加坡源站。
源站分为两类:
- 应用服务源站(双 IP)。
- 静态资源源站(双 OSS 域名)。
2.源站类型与特点
IP 源站场景:使用 IP 作为源站时无需配置回源 hosts,因为后端服务能自行解析业务域名,只需配置 SNI 即可正常完成 HTTPS 回源。
OSS 双域名场景:由于两个 OSS Bucket 无法绑定同一自定义域名,因此需借助 CDN 与回源 hosts,将自定义域名映射到不同的 OSS 源站,实现统一域名的访问能力。
2.1 IP 源站(双 IP 模式)
- 常见于 ECS / CLB / K8s 服务。
- 直接配置 两个 IP 作为源站。
- 特点:
- 不需要回源 hosts。
- 只要保证源站证书的 SNI 支持,即可完成 HTTPS 回源。
- 使用场景:
- 应用 API、业务服务。
- 使用 IP 作为源站时无需配置回源 hosts,因为后端服务能自行解析业务域名,只需配置 SNI 即可正常完成 HTTPS 回源。
2.2 OSS 源站(双 OSS 域名模式)
- 场景:同一服务在 中国区和新加坡 OSS 各有一个 bucket。
- 由于 OSS 桶不能共享同一个自定义域名:
- 需要在 CDN 配置 条件源站,并结合 回源 hosts 来实现统一入口。
- 逻辑:
- Region = 中国大陆 → 回源到中国区 OSS 域名(cn-bucket.oss-cn)。
- Region ≠ 中国大陆 → 回源到新加坡 OSS 域名(sg-bucket.oss-ap)。
3.源站配置
以下仅展示多源站配置,单源站、HTTPS 及 TLS1.0/1.1 关闭不在演示范围。
3.1 IP 源站配置步骤
1.登录阿里云 CDN 控制台,进入 域名管理。
在 源站配置 中,添加 源站类型:IP。
填写两个源站 IP 地址(如中国区 IP、新加坡区 IP)。
2.在 规则引擎中 创建好回源规则:
3.在 多条件源站 中添加规则:(关联刚才的规则)
- 区域条件:中国大陆 → 中国区 IP。
- 区域条件:非中国大陆 → 新加坡 IP。
4.确认开启 HTTPS 回源,并配置 SNI 对应业务域名。
3.2 OSS 源站配置步骤
1.登录阿里云 CDN 控制台,进入 域名管理。
分别填写:
- 中国区 OSS 域名
- 新加坡 OSS 域名
2.在 规则引擎中 创建好回源规则:
3.在 多条件源站 中添加规则:
- 区域条件:中国大陆 → 中国区 OSS 域名。
- 区域条件:非中国大陆 → 新加坡 OSS 域名。
4.配置 回源 hosts:
- 将业务域名(如 static.example.com)作为回源 Host。
- 确保 OSS 能识别并允许该自定义域名。
3.3 小结
目前来看,双 IP 源站与双 OSS 源站的主要区别在于 一个依赖 SNI 配置,一个依赖回源 Hosts 配置。
- SNI 配置:由于后端是 Higress/Nginx,可能同时承载多个域名请求,因此必须通过 SNI 明确指定访问的是哪个域名源站,否则无法正确路由到目标服务。
- 回源 Hosts 配置:这是因为一个域名无法直接绑定多个存储桶,而 OSS 必须绑定自定义域名才能通过该域名访问。否则只能使用默认地址。通过 CDN 回源时配置 Hosts,相当于模拟了自定义域名的访问效果,从而实现一个域名同时对应多个 OSS 存储桶的能力。
简而言之:SNI 解决多域名路由问题,回源 Hosts 解决 OSS 域名绑定限制问题。
以下就是2个桶绑定一个域名的结果,可以看到有一个oss桶,显示未绑定。
未绑定
已绑定
4.与阿里云沟通总结
总结区别就是ip源站不需要配置回源hosts,需要sni,域名源站需要配置回源hosts,原因不同oss不支持绑定多个域名,等于用cdn完善了这部分的功能缺陷