You need to enable JavaScript to run this app.
导航
回源重试逻辑
最近更新时间:2024.08.09 10:50:42首次发布时间:2022.02.09 11:16:49

当回源请求失败时,火山引擎内容分发网络(CDN)会尝试其他源站,也就是 "回源重试"。

说明

回源请求失败的常见原因如下:

  • TCP 连接超时。

  • 其他原因导致的 TCP 连接失败。

  • 源站响应状态码是 5xx。如果您指定了 回源重试状态码,则以您指定的状态码为触发回源重试的条件。

  • HTTP 请求超时。

默认情况下,TCP 连接超时时间是 2 秒,HTTP 请求超时时间是 60 秒。如果您要修改这些超时时间的设置,参考 配置超时时间的设置

回源重试发生时,CDN 的源站选择流程

alt

文字说明

  1. 判断无法访问的源站是否是一个 条件源站

    • 如果该源站不是条件源站,继续步骤 2。

    • 如果该源站是条件源站,则判断该源站的类型。

      • 如果该源站一个 IP 地址,CDN 判定无法从源站获取请求的文件。

      • 如果该源站是一个域名,则判断该域名是否可以被解析为多个 IP 地址。

        • 如果该域名可以被解析为多个 IP 地址,CDN 会尝试另一个 IP 地址。如果回源请求依然失败,CDN 判定无法从源站获取请求的文件。
        • 如果该域名只能被被解析为一个 IP 地址,CDN 判定无法从源站获取请求的文件。
  2. 尝试主源站列表中的另一个源站,步骤如下:

    1. 从主源站列表中,根据源站权重选择另一个主源站。如果没有可供选择的主源站,继续步骤 3。

      说明

      如果源站是域名并且该域名可以被解析为多个 IP 地址,当其中一个 IP 地址无法访问时,CDN 会尝试另一个 IP 地址。

    2. 判断选中的主源站是否被标记为不可用。

      说明

      如果连续 10 次无法与一个源站建立 TCP 连接,CDN 会将该源站标记为不可用。

      • 如果选中的主源站被标记为不可用,CDN 放弃尝试该源站,然后重复步骤 2.a。同时,CDN 会对该源站进行异步探测。

        说明

        如果异步探测的结果是 TCP 连接成功,CDN 会从该源站移除不可用标记。

      • 如果选中的主源站没有该标记,则继续步骤 2.c。

    3. 向选择的主源站发送回源请求。

    4. 判断回源请求是否成功。

      • 如果回源请求失败,继续步骤 3。
  3. 尝试备源站列表中的一个源站,步骤如下:

    1. 从备源站列表中,根据源站权重选择一个备源站。如果没有可供选择的备源站,CDN 判定无法从源站获取请求的文件。

    2. 判断选中的备源站是否被标记为不可用。

      • 如果选中的备源站被标记为不可用,则重复步骤 3.a。同时,CDN 会对该源站进行异步探测。

      • 如果选中的备源站没有该标记,则继续步骤 3.c。

    3. 向选中的备源站发送回源请求。

    4. 判断回源请求是否成功。

      • 如果回源请求失败,CDN 判定无法从源站获取请求的文件。