条件源站功能可以与规则引擎功能实现配置联动,根据指定规则(如 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 源站。
创建规则引擎规则
-
登录CDN控制台,在域名管理页面找到目标域名,单击操作列的管理,在左侧导航栏单击规则引擎。
-
单击添加规则,输入规则名称,在规则内容区域单击加号图标添加匹配条件,按下表配置:
配置项
值
规则名称
自定义名称,如
api-to-fc,便于后续识别匹配类型
URI
匹配运算符
包含其中任意一个
匹配值
单击编辑,输入
*/api/*后按回车添加。支持通配符*和?,单条规则最多支持32个匹配值。区分大小写
不勾选(默认,即忽略大小写)
重要不要添加 hostname 条件。hostname 匹配的是请求域名而非源站,添加 hostname 条件可能导致规则无法匹配 URL 重写后的路径。
-
单击提交,保存规则。
配置条件源站
-
在目标域名的管理页左侧导航栏,单击基本配置,在源站信息区域,单击条件源站后的展开配置条件源站。
-
单击新增条件源站,在对话框中按下表配置:
配置项
值
规则条件
在下拉列表中选择步骤一创建的规则(如
api-to-fc)源站地址
输入函数计算(FC)的源站地址
-
单击确定,完成配置。
配置回源 HOST
-
在目标域名的管理页左侧导航栏,进入回源配置 > 配置 Tab,在指定源站回源HOST区域,单击添加。
-
在指定源站HOST对话框中,按下表配置:
配置项
配置值
源站类型
自定义源站。条件源站中配置的源站地址不会出现在基础源站地址的下拉列表中,需选择自定义源站后手动输入。
源站地址
输入步骤二中填写的 FC 源站地址
回源HOST类型
自定义回源HOST
回源HOST
填写 FC 服务的域名(如
your-fc-function.cn-hangzhou.fcapp.run)规则条件
(可选)选择步骤一创建的规则条件(如
api-to-fc) -
单击确定,完成配置。
无需关闭默认回源HOST。当同一源站同时存在默认回源 HOST 配置和指定源站回源 HOST 配置时,以指定源站回源 HOST 配置优先生效;其他未单独指定回源 HOST 的源站,默认回源 HOST 仍继续生效。
配置 URL 重写(可选)
如果业务需要将 /api/ 路径重写为 FC 上的 /print/api/ 路径,需配合 CDN 的 URL 重写功能进行配置:
-
在规则引擎中配置 URL 重写规则,将
/api/重写为/print/api/。 -
确保步骤一中规则引擎的 URI 匹配条件能覆盖重写后的路径(如使用
*/api/*或具体匹配/print/api/*)。
完成以上配置后,前端请求 /api/* 时将路由至 FC 服务,其他请求默认回源至 OSS。
示例:基于 Referer 的条件回源
以下示例将根据访问来源(Referer)将请求路由到不同的源站,适用于图片防盗链或来源控制的场景。
创建 Referer 规则条件
-
登录 CDN 控制台,在域名管理页面单击目标域名操作列的管理,在左侧导航栏单击规则引擎。
-
单击添加规则,在规则内容区域单击加号图标添加匹配条件,按下表配置。规则引擎的匹配类型中没有独立的 Referer 选项,需通过请求头匹配类型实现:
配置项
值
规则名称
referer-routing(自定义,便于识别)匹配类型
请求头
参数名
Referer匹配运算符
包含其中任意一个
匹配值
单击编辑,输入目标来源域名(如
example.com)。支持配置多个来源域名。区分大小写
不勾选(默认,即忽略大小写)
-
单击提交,保存规则。
配置条件源站
-
在目标域名的管理页左侧导航栏,单击基本配置,在源站信息区域单击条件源站后的展开配置条件源站。
-
单击新增条件源站,在对话框中按下表配置:
配置项
值
规则条件
在下拉列表中选择
referer-routing源站地址
输入 Referer 来源对应的专用源站地址
-
单击确定,完成配置。
示例:中国内地和非中国内地用户访问不同的源站
以下示例通过条件源站结合规则引擎实现地域分流。
-
登录 CDN 控制台,在域名管理页面单击目标域名操作列的管理,在左侧导航栏单击规则引擎,单击添加规则。
-
配置中国内地规则:在规则内容区域单击加号图标添加匹配条件,匹配类型选择用户IP地理位置,匹配运算符选择包含其中任意一个,匹配值单击编辑后在下拉列表中选择中国内地,提交保存规则。
-
配置海外规则(兜底):另建一条规则,匹配类型选择用户IP地理位置,匹配运算符选择不包含其中任意一个,匹配值选择中国内地,提交保存规则。
-
配置条件源站:在基本配置的源站信息区域,分别为两个规则关联对应的源站:
-
中国内地规则关联国内源站(如国内 OSS Bucket 或国内服务器)。
-
非中国内地(海外)规则关联海外源站(如海外 OSS Bucket 或海外服务器)。
-
-
配置回源 Host:为每个源站分别配置指定回源 Host,确保 Host 值与对应源站域名一致。
-
在目标域名的管理页左侧导航栏,进入回源配置 > 配置 Tab,在指定源站回源HOST区域,单击添加。
-
在指定源站HOST对话框中,按下表配置,为国内源站和海外源站各添加一条:
配置项
配置值
源站类型
自定义源站。条件源站中配置的源站地址不会出现在基础源站地址的下拉列表中,需选择自定义源站后手动输入。若该源站地址已添加到基本配置的源站信息中(如 OSS 源站),也可选择基础源站地址后从下拉列表选择。
源站地址
输入步骤 4 中条件源站关联的源站地址(如国内或海外 OSS Bucket 域名)
回源HOST类型
自定义回源HOST
回源HOST
填写与该源站域名一致的 HOST 值(如
bucket.oss-cn-hangzhou.aliyuncs.com)规则条件
选择该源站对应的规则条件(如中国内地规则或海外规则)
-
单击确定,完成配置。
说明无需关闭默认回源HOST。当同一源站同时存在默认回源 HOST 配置和指定源站回源 HOST 配置时,以指定源站回源 HOST 配置优先生效;其他未单独指定回源 HOST 的源站,默认回源 HOST 仍继续生效。
-
跨境优化建议
针对非中国内地用户访问中国内地源站延迟高或连接不稳定的场景,建议结合 OSS 传输加速优化跨境回源链路。配置方式如下:
-
中国内地用户的条件源站回源至 OSS 普通公网域名(如
bucket.oss-cn-hangzhou.aliyuncs.com)。 -
非中国内地用户的条件源站回源至 OSS 传输加速域名(如
bucket.oss-accelerate.aliyuncs.com)。
OSS 传输加速利用全球分布的加速节点优化跨境传输链路,可有效降低回源延迟。关于 OSS 传输加速的详细说明,参见OSS 传输加速。