You need to enable JavaScript to run this app.
导航
条件源站
最近更新时间:2024.08.13 17:18:27首次发布时间:2024.06.24 17:42:39

本文档介绍了火山引擎内容分发网络(CDN)提供的 "条件源站" 特性。该特性目前以白名单的方式对外开放。如果您需要此功能,请 提交工单

概述

除了基础源站,CDN 还提供了 "条件源站"。对于满足特定条件的用户请求,您可以通过该特性指定回源时 CDN 访问的源站。

在 "条件源站" 的配置中,您可以创建一条或者多条规则。在规则中,您需要定义:

  • 请求条件:表示一个过滤器,用于过滤用户请求。您需要在过滤器中定义一个或者多个过滤条件。

  • 源站信息:表示如果请求满足过滤条件,回源时 CDN 访问的源站。

说明

"条件源站" 不支持指定类型是对象存储桶的源站。

源站选择逻辑

在您配置了 "条件源站" 后,如果 CDN 收到一个用户请求,CDN 在回源时会根据以下逻辑选择要访问的源站:

  • 根据规则的优先级,CDN 依次尝试将这些规则与该用户请求进行匹配。
    • 如果一条规则与该请求匹配,CDN 在回源时会访问规则中指定的源站。

    • 如果没有任何规则匹配该请求,CDN 在回源时会访问一个基础源站。

回源重试

参见 回源重试逻辑

前提条件

您加速域名的源站配置模块已升级。参见 配置源站 文档开头的说明。

操作步骤

  1. 登录 火山引擎内容分发网络控制台

  2. 在左侧导航栏,点击 域名管理

  3. 域名管理 页面,找到需要配置的域名,点击 管理

  4. 在页面右上方,点击 编辑配置

  5. 源站清单 下方,点击 + 条件源站,然后设置 条件源站 为启用。

  6. 点击 添加规则。您最多可以添加 50 条规则。规则有优先级,参见 规则生效逻辑
    alt

  7. 参考 配置说明 对规则进行配置。

  8. 配置完所有规则后,在页面右上方,点击 提交编辑

配置说明

配置说明

请求条件

表示一个或者多个过滤条件,用于对请求进行过滤。点击 添加 创建一个过滤条件。

您可以指定这些过滤条件之间的关系,默认是

  • :表示只要满足任何一个过滤条件,用户请求就匹配该规则。

  • :表示必须满足所有过滤条件,用户请求才匹配该规则。

在每个过滤条件中,您需要设置过滤类型、对比类型和过滤值。过滤值可以有多个,以分号(;)分隔。每个过滤值之间的关系是 "或"。

过滤类型表示 CDN 对请求中的哪个对象进行过滤。过滤类型的说明如下:

  • 文件全路径:表示请求 URL 中的完整路径。

  • 文件目录:表示路径中的任意一个目录。假设路径是 /a/b/c/d/file,则 /a//b/c//d/ 都是文件目录。

  • 文件后缀:表示路径末尾的扩展名。

  • 请求 FullQuery:表示请求 URL 中的查询字符串。要使用该过滤类型,请 提交工单

  • 客户端 IP:表示客户端的 IP 地址或者 IP 地址的归属地。

不同的过滤类型对应不同的对比类型。各对比类型的说明如下:

  • 等于:表示如果过滤对象匹配了某个过滤值,该请求就满足这个过滤条件。
  • 不等于:表示如果所有过滤对象都不匹配过滤值,该请求才满足这个过滤条件。
  • 正则匹配:表示如果过滤值中的某个正则表达式匹配了过滤对象中的任何部分,该请求就满足这个过滤条件。要使用该对比类型,请 提交工单
  • 正则不匹配:表示如果过滤值中的所有正则表达式都不匹配过滤对象中的任何部分,该请求才满足这个过滤条件。要使用该对比类型,请 提交工单
  • 属于:表示如果客户端 IP 地址的归属地在过滤值所表示国家和地区列表中,该请求就满足这个过滤条件。
  • 不属于:表示如果客户端 IP 地址的归属地不在过滤值所表示国家和地区列表中,该请求才满足这个过滤条件。

关于过滤值的输入要求,参见 配置输入要求

源站类型

表示源站的类型,该配置有以下可选项:

  • IP 源站:表示源站是一个 IP 地址。
  • 域名源站:表示源站是一个域名。

源站地址

参见 配置源站 中的说明。

HTTP 端口
HTTPS 端口
回源 Host

规则生效逻辑

在规则列表中,每条规则都有一个优先级,优先级为 1 的规则优先级最高。当收到一个用户请求时,CDN 会按照优先级从高到低的顺序使用规则对该请求进行过滤。如果请求满足某条规则中的条件,则该规则中的配置对请求生效,并且 CDN 停止使用其余规则对用户请求进行过滤。您可以拖动规则来调整优先级。

规则中的 请求条件 定义了规则的作用范围。如果您创建了多条规则,请注意这些规则的作用范围是否重叠,并且按照您的期望设置规则的优先级。例如,您创建了两条规则,规则A 的作用范围是 /dir/,规则B 的作用范围是 png;jpg。如果 /dir/ 目录中有. png 文件,并且您希望规则B 的配置优先对 .png 文件的请求生效,则需要将规则B 的优先级设置为高于规则A。

更多信息

配置输入要求

配置输入要求

请求条件

过滤值的输入要求如下:

  • 如果过滤类型是 文件全路径,每个过滤值表示一个完整路径。路径必须以斜杠(/)开头。您可以在路径中使用一个或者多个星号(*),每个星号表示一个或者多个字符。例如:/www/img/my*image.png

  • 如果过滤类型是 文件目录,每个过滤值表示一个路径目录。目录必须以斜杠(/)开头和结尾。例如:/www/img/

  • 如果过滤类型是 文件后缀,每个过滤值表示一个路径后缀。后缀无需以句点(.)开头。例如:png;txt

  • 如果过滤类型是 文件全路径文件目录文件后缀,所有过滤值的总长度不能超过 1,024 个字符,不能包含以下字符:

    • 连续斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。
  • 如果过滤类型是 请求 FullQuery,所有过滤值的总长度不能超过 256 个字符,可以包含以下字符:

    • 数字、字母、百分号(%)、下划线(_)、中划线(-)。
  • 如果过滤类型是 客户端 IP 并且对比类型是 等于 或者 不等于,IP 地址的数量不能超过 5 个。IP 地址只能是 IPv4 地址。