条件源站功能可以与规则引擎功能实现配置联动,根据指定规则(如 request header、query string parameter、path、client IP 等)来过滤用户请求,并将符合条件的请求回源到指定的源站地址。可以添加多个配置,实现不同规则条件下回源到不同的源站。
前提条件
在添加条件源站配置之前,需要先在规则引擎中创建规则条件。
注意事项
功能冲突:条件源站与高级回源互斥,只能二选一配置。
通配符支持:在规则引擎中,URI匹配值支持通配符
*(匹配任意多个字符)和?(匹配任意单个字符)。高级回源功能中的 Path 匹配仅支持精确值,不支持通配符。规则优先级与匹配顺序:条件源站按所关联规则条件的优先级依次匹配,而非按功能自身的配置顺序。命中某一条规则后不再继续匹配。规则引擎中的规则条件优先级由创建顺序决定,越早创建的规则优先级越高。若需调整匹配优先级,需在规则引擎中删除现有规则后,按期望的优先顺序重新添加。
多路径配置技巧:在创建"包含"或"不包含"某路径的规则时,可以在单条规则的匹配值中填写多个路径(支持多行或多值输入),简化配置。
规则数量限制:条件源站可引用的规则条件数量受规则引擎全局限制。单个域名下所有功能(包括条件源站、高级回源、Referer 防盗链等)对规则条件的总引用次数最大不超过 5 次。在多源站复杂场景下,若超出该限制会导致配置失败。建议合理规划规则数量,或在源站过多时考虑使用独立域名分别加速。
源站为OSS时的注意事项
若源站为OSS,需要添加该源站地址到域名管理 > 基本配置 > 源站信息中,并且将源站类型设置为OSS域名,以便CDN与OSS正常鉴权。
多 OSS 源站场景:当配置多个 OSS 源站时,必须为每个源站配置指定源站回源HOST,且 Host 值需与对应的 OSS Bucket 域名完全一致(例如
dev-3mir.oss-cn-guangzhou.aliyuncs.com)。若未正确配置或依赖默认回源 Host,请求可能随机回源至错误的 Bucket,导致 403 SignatureDoesNotMatch(签名验证失败)或 404 Not Found 错误。每条条件回源规则(包括匹配规则和不匹配/兜底规则)都需要明确绑定对应的源站和回源 Host。建议在配置多个源站时,将基础源站的权重设置为一致,并为每个条件源站配置独立的规则条件,以确保回源路径可控。
条件源站与基础源站、高级回源的区别
条件源站和高级回源均可引用规则引擎中配置的规则条件,从而实现更灵活的回源策略。CDN 根据请求是否命中规则条件,自动选择对应的源站:
源站类型 | 触发条件 |
条件源站 | 请求命中条件源站引用的规则条件 |
高级回源 | 请求命中高级回源引用的规则条件 |
基础源站 | 请求未命中任何条件源站 / 高级回源规则(默认兜底) |
操作步骤
示例:/api/* 地址访问 FC 服务,其他地址访问 OSS 服务
高级回源仅支持精确值匹配,不支持通配符或正则表达式。要实现的路径级回源,可以使用条件源站与规则引擎。通过条件源站功能结合规则引擎和 URL 重写,可以实现将 /api/* 路径的请求路由到函数计算(FC)源站,其他请求默认回源到 OSS 源站。
创建规则引擎规则
登录域名管理,在域名管理页面找到目标域名,进入规则引擎。
单击添加规则,按下表配置规则条件:
配置项
值
规则名称
自定义名称,如
api-to-fc,便于后续识别匹配类型
URI
匹配运算符
包含其中任意一个
匹配值
*/api/*大小写敏感
忽略大小写(默认)
重要不要添加 hostname 条件。hostname 匹配的是请求域名而非源站,添加 hostname 条件可能导致规则无法匹配 URL 重写后的路径。
单击提交,保存规则。
配置条件源站
在域名管理页面左侧导航栏,进入域名管理 > 基本配置,在源站信息区域,单击条件源站后的展开图标。
单击新增条件源站,在对话框中按下表配置:
配置项
值
规则条件
在下拉列表中选择步骤一创建的规则(如
api-to-fc)源站地址
输入函数计算(FC)的源站地址
单击确定,完成配置。
配置回源 HOST
在回源配置中,为该规则指定回源 HOST 为 FC 的域名,确保回源请求使用正确的 Host 头。
配置 URL 重写(可选)
如果业务需要将 /api/ 路径重写为 FC 上的 /print/api/ 路径,需配合 CDN 的 URL 重写功能进行配置:
在规则引擎中配置 URL 重写规则,将
/api/重写为/print/api/。确保步骤一中规则引擎的 URI 匹配条件能覆盖重写后的路径(如使用
*/api/*或具体匹配/print/api/*)。
完成以上配置后,前端请求 /api/* 时将路由至 FC 服务,其他请求默认回源至 OSS。
示例:基于 Referer 的条件回源
以下示例将根据访问来源(Referer)将请求路由到不同的源站,适用于图片防盗链或来源控制的场景。
创建 Referer 规则条件
登录 CDN 控制台,选择目标域名,进入域名管理 > 规则引擎。
单击添加规则,按下表配置:
配置项
值
规则名称
referer-routing(自定义,便于识别)匹配类型
Referer
匹配运算符
包含其中任意一个
匹配值
example.com目标来源域名。支持配置多个来源域名。大小写敏感
忽略大小写
单击提交,保存规则。
配置条件源站
在域名管理页面左侧导航栏,进入基本配置,在源站信息区域单击条件源站后的展开图标。
单击新增条件源站,在对话框中按下表配置:
配置项
值
规则条件
在下拉列表中选择
referer-routing源站地址
输入 Referer 来源对应的专用源站地址
单击确定,完成配置。
常见问题
配置条件源站后,访问资源仍回源到基础源站或出现 404/403 错误,如何排查?
请按以下步骤逐一排查:
检查规则匹配条件:确认请求的 URI、Header 等参数是否命中了您配置的条件规则。注意 URI 路径匹配需使用通配符(如
/api/*),通配符*匹配零个或多个字符,?匹配任意单个字符。如果匹配值未加通配符,可能导致无法匹配。检查回源 Host 配置:如果您的源站是 OSS,确认是否为每个条件源站配置了指定回源 Host,且 Host 值与对应 OSS Bucket 域名完全一致。未正确配置回源 Host 会导致 OSS 签名验证失败,返回 403 错误。
检查源站地址:确认源站地址填写正确且源站服务正常运行。可以通过直接访问 OSS Bucket 域名验证源站是否可达。
检查缓存状态:配置修改后,CDN 边缘节点可能仍保留旧配置下的缓存内容。建议执行缓存刷新操作,以确保新配置立即生效。特别是基于 Cookie 的条件回源规则,若测试时账号未登录(请求不携带 Cookie)或缓存未清理,可能导致规则看似未生效。建议在测试时使用
curl -v -H "Cookie: key=value"命令模拟携带 Cookie 的请求,验证规则是否正确匹配。检查 OSS 权限:若回源 OSS 时返回 403 且错误信息包含 "You have no right to access this object",检查 OSS Bucket 的 ACL 权限。若 Bucket 为私有权限,需将其设置为公共读或在 CDN 配置回源鉴权。
检查规则条件引用次数:确认单个域名下规则条件的总引用次数未超过 5 次的上限。超限会导致新配置无法生效。
如何实现中国内地和非中国内地用户访问不同的源站(流量分流)?
您可以通过条件源站结合规则引擎实现地域分流。具体配置如下:
创建地域规则条件:登录 CDN 控制台,选择目标域名,进入域名管理 > 规则引擎,单击添加规则。
配置中国内地规则:匹配类型选择用户地理位置,匹配值选择中国内地,关联规则逻辑关系选择或者,保存规则。
配置海外规则(兜底):匹配类型选择用户地理位置,匹配值选择不包含中国内地,保存规则。
配置条件源站:在源站信息区域,分别为两个规则关联对应的源站:
中国内地规则关联国内源站(如国内 OSS Bucket 或国内服务器)
非中国内地(海外)规则关联海外源站(如海外 OSS Bucket 或海外服务器)
配置回源 Host:为每个源站分别配置指定回源 Host,确保 Host 值与对应源站域名一致。
跨境优化建议
针对非中国内地用户访问中国内地源站延迟高或连接不稳定的场景,建议结合 OSS 传输加速优化跨境回源链路。配置方式如下:
中国内地用户的条件源站回源至 OSS 普通公网域名(如
bucket.oss-cn-hangzhou.aliyuncs.com)。非中国内地用户的条件源站回源至 OSS 传输加速域名(如
bucket.oss-accelerate.aliyuncs.com)。
OSS 传输加速利用全球分布的加速节点优化跨境传输链路,可有效降低回源延迟。关于 OSS 传输加速的详细说明,请参见通过传输加速访问OSS。
配置条件源站后,多久生效?是否需要刷新缓存?
生效时间:条件源站配置修改后,通常在 5~10 分钟内全局生效。CDN 配置会逐步推送到各边缘节点,在此期间可能出现新旧配置并存的情况。
缓存刷新建议:
配置生效后,如果CDN 边缘节点已缓存了旧配置下回源获取的内容,建议执行缓存刷新操作,以确保用户访问到最新内容。您可以通过 CDN 控制台手动刷新缓存,或调用
RefreshObjectCachesAPI 进行批量刷新。如果配置修改仅涉及回源规则(不涉及已缓存内容本身),通常不需要刷新缓存,因为回源规则由 CDN 边缘节点实时判断。
对于首次配置条件源站的用户,建议配置完成后使用 curl -I 命令测试不同路径的回源结果,确认配置已生效。
CDN 回源私有 OSS 时,如何配合条件源站实现鉴权?
当您的 OSS Bucket 为私有权限时,CDN 回源需要正确的鉴权配置才能正常获取资源。请通过服务关联角色授权 CDN 访问私有 OSS,授权 CDN 服务访问您的私有 OSS Bucket,详细操作参见OSS私有Bucket回源。CDN 会通过服务关联角色获取 OSS 访问权限。授权后,CDN 回源私有 Bucket 时自动携带鉴权信息,无需手动配置。
CDN 与全球加速 GA 联用时出现 502 错误,如何排查?
若 CDN 与全球加速(GA)联动,且配置条件源站后出现 502 错误,请按以下方向排查:
检查回源 Host 配置:使用条件源站时,需删除默认的回源 Host,改为配置指定回源 Host。建议配置两条规则分别处理中国内地和非中国内地流量:一条匹配中国内地流量,源站为中国内地服务器 IP,指定回源 Host 设置为 CDN 加速域名;另一条匹配非中国内地流量,源站为 GA 源站域名,指定回源 Host 设置为 GA 源站域名。
检查协议与端口一致性:确保 GA 监听端口与 CDN 回源端口一致。若 GA 使用 HTTPS 443 端口,建议 CDN 也通过 443 端口回源。若源站未配置 HTTPS 证书,可在 GA 中创建监听 HTTP 80 端口的实例,使 CDN 通过 HTTP 80 端口回源至 GA,避免因协议或端口不匹配导致的 502 错误。
替代方案:若上述配置过于复杂,可考虑迁移至 ESA(边缘安全加速),ESA 支持更灵活的条件源站配置及独立回源端口配置。
配置条件源站是否影响防盗链功能?
不影响。防盗链策略(包括 Referer 防盗链、URL 鉴权等)对整个 CDN 域名全局生效,与条件源站配置互不干扰。配置条件源站后,防盗链功能仍按原有策略正常工作。
CDN 配置条件源站时,源站中是否需要添加对应的 URL 路径?
不需要。源站侧只需配置域名,无需添加 URL 路径规则。CDN 根据请求的完整 URL 进行回源判断:
若请求满足条件源站规则,则回源至对应规则关联的源站。
若不满足任何条件源站规则且存在基础源站,则回源至基础源站。
只需在 CDN 控制台添加对应的源站域名,并为每个条件源站配置指定回源 Host(即源站域名)。无需在源站侧额外配置 URI 匹配规则。