Azure 内容分发网络(来自 Edgio Premium 规则引擎)的参考资料
本文列出了 Azure 内容分发网络 规则引擎的可用匹配条件和功能的详细说明。
规则引擎旨在成为内容分发网络处理特定类型请求的最终授权机构。
常见用途:
- 覆盖或定义自定义缓存策略。
- 保护或拒绝对敏感内容的请求。
- 重定向请求。
- 存储自定义日志数据。
关键概念
本文介绍了设置规则引擎的关键概念。
草案
策略草稿由一个或多个规则组成,这些规则旨在标识请求和应用于这些规则的一组操作。 草稿是正在进行的工作,允许频繁的配置更新,而不会影响站点流量。 草稿准备就绪后,应将其转换为只读策略。
规则
规则标识一个或多个请求类型以及应用于这些请求的一组操作。
它包括:
- 通过一组条件表达式定义用于识别请求的逻辑。
- 一组匹配条件,用于定义用于标识请求的条件。
- 一组功能,用于定义内容分发网络如何处理上述请求。 下图中标识了这些元素。
政策
由一组只读规则组成的策略提供了以下方法:
- 创建、存储和管理规则的多个变体。
- 回滚到以前部署的版本。
- 提前准备特定于事件的规则(例如,由于客户源维护而重定向流量的规则)。
注意
尽管每个环境只允许一个策略,但可能会根据需要部署策略。
部署请求
部署请求提供了一个简单的简化过程,通过该过程,策略可以快速应用于过渡或生产环境。 提供了部署请求的历史记录,以帮助跟踪应用于这些环境的更改。
注意
只有未通过自动验证和错误检测系统的请求需要手动评审和批准。
规则优先级
策略中包含的规则通常按照列出顺序进行处理(例如,从上到下)。 如果请求与冲突规则匹配,则处理的最后一个规则优先。
策略部署工作流
将策略应用到生产环境或过渡环境的工作流如下所示。
步骤 | 描述 |
---|---|
创建草稿 | 草稿包含一组规则,用于定义内容传送网络处理内容请求的方式。 |
锁定草稿 | 完成草稿后,应将其锁定并转换为只读策略。 |
提交部署请求 | 部署请求允许将策略应用于测试流量或生产流量。 将部署请求提交到过渡环境或生产环境。 |
部署请求评审 | 部署请求将进行自动验证和错误检测。 尽管大多数部署请求都自动获得批准,但更复杂的策略需要手动评审。 |
策略部署(过渡) | 批准对过渡环境的部署请求后,策略将应用于过渡环境。 此环境允许针对模拟站点流量测试策略。 策略准备好应用于实时站点流量后,应提交对生产环境的新部署请求。 |
策略部署(生产) | 批准向生产环境部署请求后,策略将应用于生产环境。 此环境允许策略充当最终授权,以确定内容分发网络应如何处理实时流量。 |
语法
特殊字符的处理方式因匹配条件或功能处理文本值的方式而异。 匹配条件或功能可能通过以下方式之一解释文本:
字面值
解释为文本值的文本将除 % 符号之外的所有特殊字符视为必须匹配的值的一部分。 换句话说,仅当找到确切值(即 \'*'\
)时,才会满足设置为 \'*'\
的文本匹配条件。
百分比符号用于指示 URL 编码(例如,%20
)。
通配符值
解释为通配符值的文本为特殊字符分配额外的含义。 下表介绍了如何解释以下字符集:
字符 | 描述 |
---|---|
\ | 反斜杠用于转义此表中指定的任何字符。 必须在应转义的特殊字符之前直接指定反斜杠。 例如,以下代码语法将转义星号: \* |
% | 百分比符号用于指示 URL 编码(例如,%20 )。 |
* | 星号是表示一个或多个字符的通配符。 |
空间 | 空格字符指示指定值或模式满足匹配条件。 |
价值 | 单个引号没有特殊含义。 然而,一组单引号用于表示值应被视为字面值。 它可通过以下方式使用: - 每当指定的值与比较值的任何部分匹配时,它都可以满足匹配条件。 例如, 'ma' 将匹配以下任一字符串:/business/马rathon/asset.htm 马p.gif /business/template。马p - 它允许将特殊字符指定为文本字符。 例如,可以通过将空格字符括在一组单引号(即 ' ' 或 'sample value' )中来指定文本空格字符。- 它允许指定空白值。 通过指定一组单引号(即“”)来指定空白值。 重要提示: - 如果指定的值不包含通配符,则会自动将其视为文本值,这意味着不需要指定一组单引号。 - 如果反斜杠不转义此表中的另一个字符,则当在一组单引号中指定时,将忽略该斜杠。 - 将特殊字符作为文字字符进行表示的另一种方法是使用反斜杠(即 \ )转义它。 |
正则表达式
正则表达式定义在文本值内搜索的模式。 正则表达式表示法定义各种符号的特定含义。 下表显示特殊字符如何通过匹配条件和支持正则表达式的功能进行处理。
特殊字符 | 描述 |
---|---|
\ | 反斜杠用于转义其后面的紧接字符,这会导致该字符被视为字面值,而不是其正则表达式的含义。 例如,以下语法用来转义星号字符:\* |
% | 百分比符号的含义取决于其用法。%{HTTPVariable} :此语法标识 HTTP 变量。%{HTTPVariable%Pattern} :此语法使用百分比符号标识 HTTP 变量和分隔符。\% :转义百分比符号允许它用作字面值或用于指示 URL 编码(例如,\%20 )。 |
* | 星号允许上述字符匹配零次或多次。 |
空间 | 空格字符通常被视为文本字符。 |
价值 | 单引号被视为文本字符。 一组单引号没有特殊含义。 |
匹配支持正则表达式的条件和特性接受由 Perl 兼容正则表达式(PCRE)定义的模式。
后续步骤
- 规则引擎匹配条件
- 规则引擎条件表达式
- 规则引擎功能
- 使用规则引擎 替代 HTTP 行为
- Azure 内容分发网络概述