当业务包含多个服务模块(如主站与子系统),且不同路径需回源至不同后端源站时,传统单一回源配置无法满足精细化流量调度需求。
通过 ESA 的条件回源功能,可根据请求路径(URI)、Host、Header 等规则,将流量智能分发至对应的源站,实现:
灵活架构支持:同一域名下混合部署多套后端服务;
运维解耦:各业务模块可独立部署、升级,互不影响;
成本优化:避免为不同服务单独申请域名或 ESA 实例。
配置条件回源涉及使用回源规则中的配置DNS记录功能,该配置项仅支持付费版套餐使用,若您使用的ESA套餐为免费版需升级套餐。
配置条件回源
配置场景
加速域名esa.example.com默认回源至 default.aliyun.com,当请求 URI 以 /test2/ 开头时回源至 test2.aliyun.com。
源站准备
默认源站为
default.aliyun.com,条件源站为test2.aliyun.com。各源站内容应相互隔离,避免路径冲突(例如
/test2/路径仅存在于条件源站)。加速域名
esa.example.com已完成 ESA 接入并处于已启用状态。
操作步骤
1. 准备源站内容(用于后续验证)
在
test2.aliyun.com的 Web 服务中创建测试文件:/test2/1.txt。确保
default.aliyun.com不存在该路径或返回 404。
2. 配置ESA域名
在ESA控制台,选择站点管理。
点击目标站点后,在左侧导航栏选择,确保加速域名已配置成功:
记录类型:CNAME
主机记录:加速域名
esa.example.com记录值/源站:域名
域名:默认源站地址
default.aliyun.com

条件回源需要通过额外的DNS记录然后在添加回源规则中进行引用。因此需要添加一条DNS记录其中记录值/源站填写条件源站的地址
test2.aliyun.com:记录类型:CNAME
主机记录:可自定义,如
condition.example.com记录值/源站:域名
域名:条件源站地址
test2.aliyun.com

3. 配置条件回源规则
在左侧导航栏,选择。在回源规则页面单击新增规则配置如下参数:
规则名称:输入自定义规则名,如
test2-path-rule自定义规则:配置请求匹配条件为
主机名 等于 esa.example.comAndURI 开头为 /test2/也可以直接编辑表达式为
(http.host eq "esa.example.com" and starts_with(http.request.uri, "/test2/"))回源HOST:填写
test2.aliyun.com(仅支持域名)回源协议和端口:按实际源站配置(如 HTTP 80 或 HTTPS 443)
DNS记录:下拉选择条件源站对应的DNS记录
CNAME | condition.example.com| 代理加速 | test2.aliyun.com

验证配置是否生效
使用不同的访问路径测试:
访问非/test2/路径下的内容
执行以下测试命令:
curl -I "https://esa.example.com/05.png?test" # 使用加速域名测试返回头:x-oss-meta-from: default.aliyun.com,表示响应获取的内容来自默认源站default.example.com。

访问/test2/路径下的内容
执行以下测试命令:
curl -I "https://esa.example.com/test2/1.txt?test" # 使用加速域名测试返回头:x-oss-meta-from: test2.aliyun.com,表示响应获取的内容来自条件源站test2.example.com。
