概述
在实际业务场景中,源站可能因故障、过载或网络异常而无法正常响应客户端请求,导致业务访问失败。EdgeOne 支持源站故障转移操作,可根据设置的 HTTP 响应状态码,自动执行回源重试策略,在源站故障时将请求转移至备用源站或指定地址,从而提升访问成功率,且重试过程对客户端无感知。
若域名同时关联了负载均衡和规则引擎的「源站故障转移」操作,EdgeOne 会先按照负载均衡的策略回源,若仍然失败,再执行「源站故障转移」操作。
说明:
功能说明
1. 支持的匹配条件:全部请求特征,以及「HTTP 响应状态码」,其中「HTTP 响应状态码」需要在「源站故障转移」操作的字段中指定(详见下方操作示例)。
2. 支持的响应状态码:
源站有明确响应状态码,例如 404、502 等,指定对应状态码即可。
源站无明确响应状态码,如回源 TCP 建连失败、HTTP 响应超时、SSL 握手失败等场景,EdgeOne 未收到响应状态码,若希望针对这些场景进行重试,需要通过转化后的状态码进行匹配。
场景 | 转化后的状态码 |
节点与源站 TCP 建连成功后,向源站发起 HTTP/HTTPS 请求,但源站直接响应 RST 包 | 520 |
节点请求到源站,在 TCP 建连阶段,源站直接发送 RST 包 | 521 |
节点请求到源站,在 TCP 建连阶段,源站一直没有响应直至节点超时 | 522 |
若域名配置的源站为域名,则节点回源时,需要解析域名获取源站服务器 IP,但解析失败,导致节点无法回源 | 523 |
节点与源站 TCP 建连成功后,向源站发起 HTTP/HTTPS 请求,源站一直没有响应直至节点超时 | 524 |
若回源协议为 HTTPS,则节点回源时需要与源站进行 SSL 握手,但握手失败 | 525 |
3. 支持的重试模式
源站故障转移提供以下五种模式,用户可根据业务需要选择并配置一种或多种模式(目前最多支持 2 种),并按从上到下的优先级生效:当前策略回源失败后,自动按优先级重试下一条策略。
注意:
在同一条规则中,「重定向至指定 URL」与「使用自定义响应页面」只能二选一,且这两种模式只能设置为最低优先级,作为兜底策略。
模式一:回源到指定 IP/域名
字段 | 说明 |
回源 IP/域名 | 支持填写 IP 或域名。值支持变量、以及常量 & 变量的拼接 |
目标 Hostname | 枚举值为「跟随请求」、「自定义」;选择「自定义」时输入值支持变量、以及常量 & 变量的拼接 |
目标请求协议 | 枚举值为「跟随请求」(默认值)、「HTTP」、「HTTPS」 |
HTTP 回源端口 | 默认值 80,支持自定义 |
HTTPS 回源端口 | 默认值 443,支持自定义 |
目标路径 | 枚举值为「跟随请求」(默认值)、「增加路径前缀」、「移除路径前缀」、「自定义完整路径」、「正则替换」 |
HTTP/2 回源 | 关闭(默认值)、开启 |
回源请求参数设置 | 默认「查询字符串」全部保留、「Cookie」全部保留,支持自定义 |
模式二:回源到腾讯云 COS
字段 | 说明 |
存储桶 | 从下拉框中选择账号下有权限的存储桶 |
存储桶访问方式 | 默认域名、静态网站 |
私有访问授权 | 若存储桶为私有读,则需要开启 |
目标路径 | 枚举值为「跟随请求」(默认值)、「增加路径前缀」、「移除路径前缀」、「自定义完整路径」、「正则替换」 |
HTTP/2 回源 | 开启、关闭(默认值) |
回源请求参数设置 | 默认「查询字符串」全部保留、「Cookie」全部保留,支持自定义 |
模式三:回源到兼容 AWS S3 的对象存储
字段 | 说明 |
存储桶地址 | S3 类型的源站域名,例如: example.s3.ap-northeast.amazonaws.com |
私有访问授权 | 若存储桶为私有读,则需要开启 |
签名鉴权版本 | AWS signature v4、AWS signature v2 |
Access Key ID | 按实际情况填写,用于签名计算 |
Secret Access Key | 按实际情况填写,用于签名计算 |
目标路径 | 枚举值为「跟随请求」(默认值)、「增加路径前缀」、「移除路径前缀」、「自定义完整路径」、「正则替换」 |
HTTP/2 回源 | 开启、关闭(默认值) |
回源请求参数设置 | 默认「查询字符串」全部保留、「Cookie」全部保留,支持自定义 |
模式四:重定向至指定 URL
字段 | 说明 |
URL 地址 | 支持变量、以及常量 & 变量的拼接 |
状态码 | 枚举值为 301、302、303、307、308 |
模式五:使用自定义响应页面
字段 | 说明 |
页面 | 从下拉框中选择账号下有权限的「自定义响应页面」 |
状态码 | 指定响应页面时的状态码,支持 2XX、4XX,5XX,不包括 499、514、101、301, 302, 303、509、520-599 |
操作步骤
例如:当前您自建的电商服务网站通过
shop.example.com 提供在线支付能力,如果在用户访问高峰期,可能出现源站过载,响应 503/522/544 状态码,为了避免用户流失,希望在响应这些状态码时,自动重试其它源站 origin.sitefailover.com(回源协议、路径、参数等均保持默认,不修改),如果仍重试失败,再通过 302 将请求重定向至指定 URL https://www.example.com/error.html 。您可以参照以下步骤操作:1. 登录 边缘安全加速平台 EO 控制台,在左侧菜单栏中,进入服务总览,单击网站安全加速内需配置的站点。在站点详情页面,单击规则引擎,进入规则引擎管理页面。
2. 在站点详情页面,单击站点加速,进入站点全局配置页面,单击规则引擎 Tab 页。
3. 在规则引擎页面,单击创建规则,选择新增空白规则,进入新规则的编辑页面。
4. 在规则编辑页面,匹配类型选择为 HOST 等于
shop.example.com。5. 单击操作 > 选择框,在弹出的操作列表内,选择操作为 源站故障转移。
6. 生效的状态码范围:支持下拉框选择以及自定义输入。
7. 选择模式为
回源到指定 IP/域名,回源 IP/域名填写 origin.sitefailover.com,其它配置保持默认值,不修改即可。8. 单击添加,选择模式为
重定向到指定 URL,状态码选择 302,URL 地址填写 http://www.example.com/custom-page.html。9. 完整的规则配置如下所示,单击保存并发布,即可完成该规则配置。

功能生效行为&限制说明
1. 「源站故障转移」操作,纳入了和回源相关的所有功能项,这些功能项均有对应的独立 Action(如回源 URL 重写、回源请求参数设置,HTTP/2 回源等)。执行「源站故障转移」操作时,回源行为以该操作里设定的为准,不受到其它独立 Action 的影响,仅回源请求头会继承「修改 HTTP 回源请求头」操作的行为。
2. 「源站故障转移」操作与以下功能存在冲突,不支持同时开启:
回源限频策略
源站证书校验