阿里云 CDN 多条件源站配置实战:跨地域环境分流

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完善了这部分的功能缺陷

 

posted @ 2025-09-30 13:54  小家电维修  阅读(57)  评论(0)    收藏  举报