同一阿里云账号下多个 CDN 加速域名默认拥有独立缓存空间,多个域名独立缓存会导致源站被重复回源。为多个域名配置共享缓存,可使多个域名在CDN节点共用缓存资源,公共资源只需从源站下载一次,后续访问直接从共享缓存中获取资源,从而提升缓存命中率、减少回源。
业务场景
同一账号下存在多个 CDN 加速域名,且源站提供大量相同资源时,即使访问不同域名但请求相同文件,节点也会分别缓存,导致源站被重复请求。配置共享缓存可将多个域名的缓存空间合并,资源只需回源下载一次。
|
场景类型 |
说明 |
示例 |
|
适用场景 |
多域名共用静态资源 |
多个域名引用相同的 JS/CSS 框架或图片库 |
|
同一源站,多个入口 |
不同域名指向同一源站,提供相同的静态资源 |
|
|
不适用场景 |
域名间资源完全不同 |
各域名提供独立内容,无公共资源可复用 |
|
需要独立缓存策略 |
各域名需单独管理缓存过期时间和回源规则 |
工作原理
配置共享缓存后,CDN 使用 rewrite_host 功能函数:在查询和生成 CacheKey 时,用 share_host 参数指定的目标域名替换当前加速域名,使多个共享同一目标的域名能命中同一份缓存条目。该配置不修改回源请求的 Host 头。各域名仍按自己的配置回源,源站收到的 Host 仍是各自的加速域名。
未配置共享缓存
-
用户访问
a.example.com/image.png,图片被缓存到a.example.com的缓存空间。 -
用户访问
b.example.com/image.png,即使图片已在a.example.com的缓存空间中存在,CDN 仍会从源站重新下载并缓存到b.example.com的缓存空间。
此时每个域名拥有独立的缓存空间,即使资源实际上相同,也会产生额外的回源请求。
已配置共享缓存
-
用户访问
a.example.com/image.png,图片被缓存到共享缓存空间。 -
用户访问
b.example.com/image.png,CDN 识别到资源相同,直接从共享缓存中获取,无需回源。
回源地址相同
设置共享缓存后,两个域名的回源地址相同(例如均为 origin.example.com)时,可合并缓存空间,进一步提升缓存利用率。
回源地址不同
设置共享缓存后,两个域名的回源地址不同(例如 origin-a.example.com 和 origin-b.example.com)时,若资源的 URL 路径完全相同,生成 CacheKey 时加速域名会被替换为共享域名,即使实际回源地址不同,仍可返回相同的缓存内容。
功能限制
配置共享缓存前,请确认满足以下条件:
-
同账号限制:只能选择同一阿里云账号的加速域名。跨账号域名无法配置。
-
域名状态要求:只能选择处于启用(在线)状态的域名。已停用或未启用的域名不会出现在候选列表中。
-
数量上限:共享缓存仅支持选择一个目标域名,不支持同时配置多个共享目标。候选域名列表最多展示 500 个域名。
-
资源组隔离:如果当前域名属于特定资源组,候选域名列表将受资源组过滤。
-
域名删除保护:当域名 A 的共享缓存对象设置为域名 B 时,系统禁止删除域名 B。删除域名 B 会影响其他共享缓存域名的命中率。需先在域名 A 上删除或修改共享缓存配置后,才能删除域名 B。
操作步骤
配置共享缓存
操作前请确认:阿里云账号具有 CDN 控制台操作权限,目标域名已添加并处于启用状态。
-
登录 CDN 控制台。
-
在左侧导航栏中,单击域名管理。
-
在域名列表中,单击目标加速域名,进入该域名的详情页。
-
在域名详情页左侧导航栏中,单击缓存配置。
-
在缓存配置页面,单击共享缓存页签。
-
单击修改配置,打开弹窗,从下拉列表选择一个目标加速域名。
下拉列表仅展示当前账号下处于启用 状态的加速域名,可通过输入框进行模糊搜索。列表最多展示 500 个域名,且自动排除当前正在操作的域名本身。
-
选择目标域名后,单击确定保存配置。
配置成功后,页面共享缓存列表中将显示已配置的目标域名。
验证配置
-
在共享缓存页面查看是否显示已配置的目标域名。
-
对比配置前后不同域名对相同资源的缓存命中率,确认共享缓存已生效。可检查 CDN 日志中
X-Cache响应头的命中情况。
修改共享缓存配置
按照上述配置共享缓存的步骤 1 至步骤 5 进入共享缓存页面,然后执行以下操作:
-
单击修改配置。
-
打开弹窗,选择新的目标加速域名,单击确定保存。
删除共享缓存配置
按照上述配置共享缓存的步骤 1 至步骤 5 进入共享缓存页面,然后执行以下操作:
-
单击删除配置。
-
在确认对话框中,单击确定。
删除成功后,页面显示未设置。
成本与影响说明
成本说明:配置共享缓存不会产生额外费用。缓存命中率提升可减少回源流量,降低 CDN 使用成本。
开启后的影响:
-
共享缓存仅在查询和生成 CacheKey 时使用共享域名替换加速域名,不影响加速域名的回源地址和回源 HOST。
-
加速域名进行账号迁移后,该域名仍可正常使用共享缓存。
删除后的影响:
-
删除共享缓存配置后,各域名恢复独立缓存空间。已缓存的资源在各自缓存过期前仍然有效。
-
删除设置了共享缓存的加速域名会影响其他共享缓存域名的命中率。需先在操作域名上删除或修改共享缓存配置,才能删除被共享的域名。