除了基础源站配置之外,CDN 还提供了“条件源站” 特性。该特性允许 CDN 基于用户请求的特征访问相应的源站。要使用该特性,请 提交工单。
源站选择逻辑
当 CDN 收到用户请求时,如果用户请求匹配条件源站的配置,则 CDN 在回源时基于条件源站的配置选择源站。否则,CDN 基于基础源站的配置选择源站。
回源重试
参见 回源重试逻辑。
前提条件
您加速域名的源站配置模块已升级。参见 源站配置 文档开头的说明。
操作步骤
- 登录 火山引擎内容分发网络控制台。
- 在左侧导航栏,点击 域名管理。
- 在 域名管理 页面,找到需要配置的域名,点击 管理。

- 定位 条件源站 模块。
- 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 基础配置 标签页中定位 条件源站 模块。
- 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 基础配置 > 源站管理 > 条件源站。如果该模块置灰,点击模块右边的 + 。

关于新旧版域名管理页面的区别,参见 新版域名配置。
- 在 条件源站 模块中,设置 状态 为启用。
- 点击 添加规则。您最多可以添加 20 条规则。规则有优先级,参见 规则生效逻辑。

- 参考 配置说明 对规则进行配置。
- 配置完所有规则后,点击 提交编辑。
配置说明
配置 | 说明 |
|---|
请求条件 | 表示一个或者多个匹配条件,最多 50 个,用于对用户请求进行匹配。点击 添加 创建一个匹配条件。
您可以指定这些匹配条件之间的关系,默认是 或。
您可以选择的匹配对象有: - 文件全路径
- 文件目录
- 文件后缀
- 客户端 IP
- 用户网络运营商
- 请求 Query:表示请求 URL 中的某个查询参数。
- 请求 FullQuery:表示请求 URL 中的所有查询参数。
- 自定义请求头部:表示请求中的某个头部。
关于各匹配对象所对应的匹配类型,以及匹配值的输入要求和示例,参见 附录一。 |
源站模式 | 表示源站的模式,该配置有以下可选项: 您可以设置的主源站和备源站的总数不能超过 50 个。 |
源站类型 | 表示源站的类型,该配置有以下可选项: - IP:表示源站是 IP 地址。
- 域名:表示源站是域名。
- TOS:表示源站是存储桶,存储桶来自火山引擎对象存储(TOS)。存储桶通过服务授权的方式访问。
- TOS 固定密钥:表示源站是 TOS 存储桶,通过火山引擎用户的 AccessKey 访问。该方式适用于以下场景:
- 精细化访问控制:通过 AccessKey 实现存储桶的访问控制。
- 跨账号访问:访问另一个火山引擎账号下的存储桶。
- 阿里云 OSS:表示源站是存储桶,存储桶来自阿里云对象存储(OSS)。
- 腾讯云 COS:表示源站是存储桶,存储桶来自腾讯云对象存储(COS)。
- Amazon S3:表示源站是存储桶,存储桶来自 AWS S3 或者使用 S3 兼容鉴权方式的对象存储服务。该类型对应常规源站配置中 Amazon S3 下的 厂商默认域名 类型,不推荐使用。
- AWS S3 兼容:对应常规源站配置中 Amazon S3 下的 自定义域名 类型,输入的桶域名无格式限制。您既可以输入云厂商分配的桶域名,也可以输入您为存储桶设置的自定义域名。
|
地址权重 | 参见 源站配置 中的说明。 |
回源地址 |
私有桶 |
回源 Host |
HTTP 端口 |
HTTPS 端口 |
AccessKey ID |
AccessKey Secret |
规则生效逻辑
在规则列表中,每条规则都有一个优先级,优先级为 1 的规则优先级最高。当收到一个用户请求时,CDN 会按照优先级从高到低的顺序使用规则对该请求进行匹配。如果请求满足某条规则中的条件,则该规则中的配置对请求生效,并且 CDN 停止使用其余规则对用户请求进行匹配。您可以拖动规则来调整优先级。
更多信息
附录一
说明
- 要指定 "正则匹配" 与 "正则不匹配",请 提交工单。
- 正则匹配不区分大小写。
匹配对象 | 可指定的匹配类型 | 匹配值输入要求 | 匹配值示例 |
|---|
文件全路径 | | - 必须以斜杠(/)开头。
- 可以包含通配符
*,但不能仅仅是 *。 - 总长度不能超过 1,024 个字符。
- 多个路径之间以分号(;)分隔,总长度不能超过 1,024 个字符。
- 不能包含以下字符:
- 双斜杠(//)、空格、美元符号($)、问号(?)。
| /www/img/my*image.png;/docs/file |
请求 FullQuery | | - 总长度不能超过 1,024 个字符。
- 多个正则表达式之间以分号(;)分隔。
| ^a{1,2}b(.*)g=val[1-3] |
文件目录 | | - 必须以斜杠(/)开头和结尾。
- 总长度不能超过 1,024 个字符。
- 多个目录之间以分号(;)分隔。
- 不能包含以下字符:
- 双斜杠(//)、空格、美元符号($)、问号(?)。
| /www/img/;/docs/folder/ |
文件后缀 | | - 只能包含字母和数字。
- 总长度不能超过 1,024 个字符。
- 不能以句点(.)开头。
- 多个后缀之间以分号(;)分隔。
| png;jpg |
客户端 IP | - 等于、不等于
- 属于、不属于:表示客户端 IP 地址是否归属于您指定的国家和地区。
| 对于 IP 地址: - 数量不能超过 5 个。
- 仅支持输入 IPv4 地址和 IPv4 CIDR。
- 多个 IP 地址之间以分号(;)分隔。
| xx.xx.xx.x;xxx.xxx.xxx.xx |
用户网络运营商 | | | 移动 联通 鹏博士 |
请求 Query | - 等于、不等于
- 正则匹配、正则不匹配
- 存在、不存在
- 为空、不为空
| 参数名称 - 每个匹配条件中只能指定一个参数名称。
- 长度不能超过 256 个字符。
- 只能包含数字、字母、下划线(_)、中划线(-)、句点(.)。
参数值 - 参数值可以是多个,以分号(;)分隔,总长度不能超过 1,024 个字符。
| 参数名称
param 参数值
p_value1;p_value2 |
自定义请求头部 | | 头部名称 - 每个匹配条件中只能指定一个头部名称。
- 长度不能超过 1,024 个字符。
- 不能包含汉字、下划线(_)、空格、双引号(")、冒号(:)。
头部值 - 头部值可以是多个,以竖线(|)分隔,数量不能超过 50 个。
- 总长度不能超过 1,024 个字符。
- 头部值可以以通配符
* 开头或结尾,但不能仅仅是 *。
| 头部名称
header 头部值
header_value1 |