ADC

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

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

在命令行上配置表达式时,可以使用引号(“.”或“.”)来分隔表达式。在表达式中,可以使用反斜杠 () 来转义额外的引号。例如,以下是在表达式中转义引号的标准方法:

"\"abc\""

‘\"abc\"’

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

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

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

在命令行上配置表达式时,可以使用引号(“.”或“.”)来分隔表达式。在表达式中,可以使用反斜杠 () 来转义额外的引号。例如,以下是在表达式中转义引号的标准方法:

<!JEKYLL@5140@0>

<!JEKYLL@5140@1>

还必须在命令行中使用反斜杠来转义问号和其他反斜杠。例如,表达式 http.req.url.包含(“?”)需要使用反斜杠才能解析问号。请注意,键入问号后,反斜杠字符将不会出现在命令行中。另一方面,如果您转义了一个反斜杠(例如,在表达式 ‘http.req.url.contains (“\\ 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 policyName **-rule** expression featureSpecificParameters **-action**

  2. show cache|dns|rewrite|cs 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 和 CLIENT。下一组适用选项显示在下拉列表中。

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

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

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

  7. 要在复合表达式的两个部分之间插入运算符,请单击运算符图标(sigma),然后选择运算符类型。以下是已配置的表达式的示例,该表达式具有布尔值 OR(由双竖线表示,

    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. 单击“ 闭”关闭此对话框。
在策略中配置高级策略表达式