ADC

在策略中配置高级策略表达式

您可以在策略中配置最多 1,499 个字符的高级策略表达式。高级策略表达式的用户界面在某种程度上取决于要为其配置表达式的功能,以及是为策略配置表达式还是为其他用途。

在命令行上配置表达式时,您可以使用引号 (“.”或“…”) 对表达式进行分界。在表达式中,您可以使用反斜杠 () 转义其他引号。例如,下面是用于在表达式中转义引号的标准方法:

"\"abc\""

‘\"abc\"’

您还必须使用反斜杠来转义命令行上的问号和其他反斜杠。例如,表达式 http.req.url 包含 (“?”) 需要反斜杠,以便解析问号。请注意,键入问号后,反斜杠字符将不会出现在命令行上。另一方面,如果您转义反斜杠(例如,在表达式 ‘http.req.url.包含(“http”)’中),则转义字符会在命令行上回显。

为了使条目更具可读性,您可以转义整个表达式的引号。在表达式的开头,您输入转义序列“q”加上以下特殊字符之一:/{< 〜 $^+=&%@# 在策略中配置高级策略表达式

您可以在策略中配置最多 1,499 个字符的高级策略表达式。高级策略表达式的用户界面在某种程度上取决于要为其配置表达式的功能,以及是为策略配置表达式还是为其他用途。

在命令行上配置表达式时,您可以使用引号 (“.”或“…”) 对表达式进行分界。在表达式中,您可以使用反斜杠 () 转义其他引号。例如,下面是用于在表达式中转义引号的标准方法:

<!JEKYLL@5140@0>

<!JEKYLL@5140@1>

您还必须使用反斜杠来转义命令行上的问号和其他反斜杠。例如,表达式 http.req.url 包含 (“?”) 需要反斜杠,以便解析问号。请注意,键入问号后,反斜杠字符将不会出现在命令行上。另一方面,如果您转义反斜杠(例如,在表达式 ‘http.req.url.包含(“http”)’中),则转义字符会在命令行上回显。

?.

您只在表达式的末尾输入特殊字符,如下所示:

q@http.req.url.contains("sometext") && http.req.cookie.exists@

q~http.req.url.contains("sometext") && http.req.cookie.exists~
<!--NeedCopy-->

请注意,使用 {分隔符的表达式以} 关闭。

对于某些功能(例如,集成缓存和响应程序),策略配置对话框提供了用于配置表达式的辅助对话框。通过此对话框,您可以从下拉列表中进行选择,这些列表显示了表达式配置期间每个点的可用选项。使用这些配置对话框时不能使用算术运算符,但大多数其他高级策略表达式功能都可用。要使用算术运算符,请以自由格式编写表达式。

使用 CLI 配置高级策略语法规则

注意 : 默认语法策略现在重命名为高级策略。

在命令提示符处,键入以下命令以配置默认语法规则并验证配置:

  1. add cache|dns|rewrite|cs policy policyName **-rule** expression featureSpecificParameters **-action**

  2. show cache|dns|rewrite|cs policy policyName 下面是配置缓存策略的示例:

    示例:

    > add cache policy pol-cache -rule http.req.content_length.le(5) -action INVAL
     Done
    
    > show cache policy pol-cache
            Name: pol-cache
            Rule: http.req.content_length.le(5)
            CacheAction: INVAL
            Invalidate groups: DEFAULT
            UndefAction: Use Global
            Hits: 0
            Undef Hits: 0
    
     Done
    <!--NeedCopy-->
    

使用 GUI 配置默认语法策略表达式

  1. 在导航窗格中,单击要在其中配置策略的功能的名称,例如,您可以选择“集成缓存”、“响应程序”、“DNS”、“重写”或“内容切换”,然后单击“策略”。

  2. 单击添加。

  3. 对于大多数功能,请单击“表达式”字段。对于内容切换,请单击配置

  4. 单击前缀 图标(房子),然后从下拉列表中选择第一个表达式前缀。例如,在响应程序中,选项是 HTTP、SYS 和客户端。下一组适用选项显示在下拉列表中。

  5. 双击下一个选项将其选中,然后键入句点 (.)。同样,一组适用的选项将出现在另一个下拉列表中。

  6. 继续选择选项,直到出现输入字段(用括号表示)。当您看到条目字段时,请在括号中输入适当的值。例如,如果选择 GT (int)(大于整数格式),则在括号中指定一个整数。文本字符串由引号分隔。以下是一个例子:

    HTTP.REQ.BODY(1000).BETWEEN("this","that")

  7. 要在复合表达式的两个部分之间插入运算符,请单击运算符图标(西格玛),然后选择运算符类型。下面是具有布尔值的已配置表达式的示例(由双垂直条 || 表示):

    HTTP.REQ.URL.EQ("www.mycompany.com")||HTTP.REQ.BODY(1000).BETWEEN("this","that")

  8. 要插入命名表达式,请单击“添加”图标(加号)旁边的向下箭头,然后选择一个命名表达式。

  9. 要使用下拉菜单配置表达式,并插入内置表达式,请单击“添加”图标(加号)。“添加表达 式”对话框的工作方式与主对话框类似,但它提供了用于选择选项的下拉列表,并为数据输入提供文本字段而不是括号。此对话框还提供了“常用表达式”下拉列表,用于插入常用表达式。完成添加表达式后,单击“确定”。

  10. 完成后,单击创建。状态栏中的消息将指示已成功配置策略表达式。

使用 GUI 测试默认语法表达式

  1. 在导航窗格中,单击要为其配置策略的功能的名称(例如,您可以选择“集成缓存”、“响应程序”、“DNS”、“重写”或“内容切换”),然后单击“策略”。
  2. 选择一个策略,然后单击打开
  3. 要测试表达式,请单击“评估”图标(复选标记)。
  4. 在表达式赋值器对话框中,选择与表达式匹配的流量类型。
  5. 在“HTTP 请求数据”或“HTTP 响应数据”字段中,粘贴要使用表达式解析的 HTTP 请求或响应,然后单击“评估”。请注意,您必须提供完整的 HTTP 请求或响应,并且标头和正文应以空行分隔。某些捕获 HTTP 标头的程序不会同时捕获响应。如果仅复制和粘贴标头,请在标头末尾插入一个空行以形成完整的 HTTP 请求或响应。
  6. 单击关闭以关闭此对话框。
在策略中配置高级策略表达式