条件源站功能可以与规则引擎功能实现配置联动,根据指定规则(如 request header、query string parameter、path、client IP 等)来过滤用户请求,并将符合条件的请求回源到指定的源站地址。可以添加多个配置,实现不同规则条件下回源到不同的源站。
前提条件
在添加条件源站配置之前,需要先在规则引擎中创建规则条件。
注意事项
源站为OSS:需要添加该源站地址到域名管理 > 基本配置 > 源站信息中,并且将源站类型设置为OSS域名,以便CDN与OSS正常鉴权。
功能冲突:条件源站与高级回源互斥,只能二选一配置。
通配符支持:在规则引擎中,URI匹配值支持通配符
*(匹配任意多个字符)和?(匹配任意单个字符)。高级回源功能中的 Path 匹配仅支持精确值,不支持通配符。配置生效:按所关联规则条件的优先级匹配,而非按功能自身的配置顺序匹配;命中某一条后不再继续匹配。
条件源站与基础源站、高级回源的区别
条件源站和高级回源均可引用规则引擎中配置的规则条件,从而实现更灵活的回源策略。CDN 根据请求是否命中规则条件,自动选择对应的源站:
源站类型 | 触发条件 |
条件源站 | 请求命中条件源站引用的规则条件 |
高级回源 | 请求命中高级回源引用的规则条件 |
基础源站 | 请求未命中任何条件源站 / 高级回源规则(默认兜底) |
操作步骤
示例:按 URL 路径回源到不同源站
高级回源仅支持精确值匹配,不支持通配符或正则表达式。要实现的路径级回源,可以使用条件源站与规则引擎。
以下示例将 /api/* 路径的请求回源到 API 专用源站,其余路径回源到基础源站。请求按以下流程路由:用户请求 → CDN 边缘 → 规则引擎匹配 URI → 匹配 /api/* 则回源到 API 源站,其余路径回源到基础源站。
在规则引擎中创建规则条件
登录 CDN 控制台,选择目标域名,进入域名管理 > 规则引擎。
单击添加规则,按下表配置:
配置项
值
规则名称
api-path-routing(自定义,便于识别)匹配类型
URI
匹配运算符
包含其中任意一个
匹配值
/api/*说明*匹配任意多个字符(包括空字符串),?匹配任意单个字符。例如:/api/*:匹配/api/下的所有路径,如/api/v1/users、/api/v2/products/img/*.png:匹配/img/目录下所有 PNG 文件,如/img/a.png、/img/b.png/static/v?/js/*:匹配/static/v1/js/、/static/v2/js/等带版本号的路径
大小写敏感
忽略大小写
单击提交,保存规则。
配置条件源站
在域名管理页面左侧导航栏,进入基本配置,在源站信息区域单击条件源站后的展开图标。
单击新增条件源站,在对话框中按下表配置:
配置项
值
规则条件
在下拉列表中选择第一阶段创建的
api-path-routing源站地址
输入 API 专用源站地址
单击确定,完成配置。
验证
配置完成后,通过以下命令测试不同路径的回源结果:
# 访问 /api/ 路径,应回源到 API 源站
curl -I https://www.example.com/api/users
# 访问其他路径,应回源到基础源站
curl -I https://www.example.com/index.html
