ADC

在策略上下文之外配置高级策略表达式

许多函数(包括以下函数)可能需要高级策略表达式,而该表达式不是策略的一部分:

  • 集成缓存选择器:

    您可以在选择器的定义中定义多个非复合表达式(selectlet)。每个 selectlet 都与其他 selectlet 处于隐含的逻辑 AND 关系。

  • 负载平衡:

    您可以为负载平衡虚拟服务器的 TOKEN 负载平衡方法配置表达式。

  • 重写动作:

    表达式定义重写操作的位置和要执行的重写类型,具体取决于您配置的重写操作的类型。例如,DELETE 操作仅使用目标表达式。REPLACE 操作使用目标表达式和表达式来配置替换文本。

  • 基于费率的策略:

    您可以使用高级策略表达式来配置限制选择器。在配置策略以限制流向各种服务器的流量时,可以使用这些选择器。在选择器的定义中,最多可以定义五个非复合表达式(selectlet)。每个 selectlet 都与其他 selectlet 处于隐含的逻辑 AND 中。

使用 CLI 在策略之外配置高级策略表达式(缓存选择器示例)

在命令提示符处,键入以下命令以在策略之外配置高级策略表达式并验证配置:

-  add cache selector <selectorName> <rule>
-  show cache selector <selectorName>
<!--NeedCopy-->

示例:

> add cache selector mainpageSelector "http.req.cookie.value("ABC_def")"
    "http.req.url.query.value("_ghi")"selector "mainpageSelector" added
Done
> show cache selector mainpageSelector
            Name: mainpageSelector
            Expressions:
                    1) http.req.cookie.value("ABC_def")
                    2) http.req.url.query.value("_ghi")
Done
<!--NeedCopy-->

以下是使用可读性更强的 q 分隔符的等效命令,如在策略中 配置高级策略表达式中所述:

> add cache selector mainpageSelector2 q~http.req.cookie.value("ABC_def")~
    q~http.req.url.query.value("_ghi")~selector "mainpageSelector2" added
Done
> show cache selector mainpageSelector2
            Name: mainpageSelector2
            Expressions:
                    1) http.req.cookie.value("ABC_def")
                    2) http.req.url.query.value("_ghi")
Done
<!--NeedCopy-->
在策略上下文之外配置高级策略表达式