配置缓存重定向策略

缓存重定向策略包含一个或多个表达式(也称为规则)。每个表达式都表示在将客户端请求与策略进行比较时评估的条件。

您不显式配置缓存重定向策略的操作。默认情况下,Citrix ADC设备将任何与策略匹配的请求视为不可缓存,并将请求定向到源服务器而不是缓存。

基于经典策略格式的缓存重定向策略称为经典缓存重定向策略。每个此类策略都有一个名称,包括一个经典表达式或一组经典表达式,这些表达式通过使用逻辑运算符进行组合。

对于传统的缓存重定向策略,您不显式配置策略的操作。默认情况下,Citrix ADC设备将任何与策略匹配的请求视为不可缓存,并将请求定向到源服务器而不是缓存。

基于较新策略格式的缓存重定向策略称为高级重定向策略。此类策略具有一个名称,包括默认语法表达式或一组默认语法表达式(通过使用逻辑运算符组合)以及以下内置操作:

  • 缓存
  • 起源

有关经典表达式和默认语法表达式的详细信息,请参阅策略和表达式

使用CLI添加缓存重定向策略

在命令提示符处,键入以下命令以添加缓存重定向策略并验证配置:

- add cr policy  \*\*-rule\*\*  - show cr policy [] 

示例:

具有简单表达式的策略:

> add cr policy policy - crd -1 -rule "REQ.HTTP。URL!= /\*.jpeg" Done > show cr policy Policy-CRD-1 Cache-By-Pass RULE: REQ.HTTP.URL != '/\*.jpeg' Policy:Policy-CRD-1 Done 

具有复合表达式的策略:

> add cr policy policy - crd -2 -rule "REQ.HTTP。方法== post && (req.http。URL==/\*.cgi || REQ.HTTP.URL != /\*.gif)" Done > show cr policy Policy-CRD-2 Cache-By-Pass RULE: REQ.HTTP.METHOD == POST && (REQ.HTTP.URL == '/\*.cgi' || REQ.HTTP.URL != '/\*.gif') Policy:Policy-CRD-2 Done 

评估标头的策略:

> add cr policy policy - crd -3 -rule "REQ.HTTP。头If-Modified-Since EXISTS" Done > show cr policy Policy-CRD-3 Cache-By-Pass RULE: REQ.HTTP.HEADER If-Modified-Since EXISTS Policy:Policy-CRD-3 Done 

使用CLI添加默认语法缓存重定向策略

在命令提示符处,键入以下命令以添加缓存重定向策略并验证配置:

- add cr policy  \*\*-rule\*\*  [-action] [- logaction ] - show cr policy [] 

示例:

具有简单表达式的策略:

> add cr policy crpol1 -rule !(HTTP.REQ.URL.ENDSWITH(".jpeg")) -action origin Done > show cr policy crpol1 Rule: !——NeedCopy >

具有复合表达式的策略:

> add cr policy crpol11 -rule "http.req.method.eq(post) && (HTTP.REQ.URL.ENDSWITH(".gif"))"-action cache Done > show cr policy crpol11 policy: crpol11 Rule: http.req.method.eq(post) && (HTTP.REQ.URL.ENDSWITH(".gif") || HTTP.REQ.URL.ENDSWITH(".cgi")) Action: cache Done 

评估标头的策略:

> add cr policy crpol12 -rule http.req.header("If-Modified-Since")。exist -action origin已完成> show cr policy crpol12 policy: crpol12 Rule: http.req.header("If-Modified-Since")。操作:ORIGIN Done 

使用CLI修改或删除缓存重定向策略

  • 要修改缓存重定向策略,请使用集cr策略命令,这就像添加cr策略命令一样,只是输入现有策略的名称。
  • 要删除策略,请使用仅接受<名称>参数的rm cr政策命令。如果策略绑定到虚拟服务器,则必须先取消绑定该策略,然后才能将其删除。

有关解除绑定缓存重定向策略的详细信息,请参阅从缓存重定向虚拟服务器取消绑定策略

使用GUI配置一个简单表达式的缓存重定向策略

  1. 导航到流量管理 > 缓存重定向 > 策略。

  2. 在详细信息窗格中,单击添加(添加)。

  3. 在“创建缓存重定向策略”对话框的“名称*”文本框中,键入策略的名称,然后在“表达式”区域中,单击“添加”。

  4. 要配置简单表达式,请输入表达式。以下是检查URL中的jpeg扩展名的表达式示例:

    • 表达式类型
    • 流量类型要求
    • 通信协议
    • 限定符url
    • 操作员-!=
    • -/jpeg

    以下示例中的简单表达式检查请求中的If-Modiied-Ii标头:

    • 表达式类型
    • 流量类型要求
    • 通信协议
    • 限定符标题
    • 运算符-存在
    • 标题名称-如果已修改-自
  5. 完成输入表达式后,单击确定或创建,然后单击关闭。

使用GUI配置具有复合表达式的缓存重定向策略

  1. 导航到流量管理 > 缓存重定向 > 策略。

  2. 在详细信息窗格中,单击添加(添加)。

  3. 在“名称“文本框中,输入策略的名称。

    名称可以以字母、数字或下划线符号开头,可以由一到 127 个字母、数字和连字符 (-)、句点 (#)、空格 ()、位于 (@)、等于 (=) 和下划线 (_) 符号组成。您应该选择一个名称,使其他人能够轻松告诉创建此策略要检测的内容类型。

  4. 选择要创建的复合表达式的类型。选项包括:

    • 匹配任何表达式。如果一个或多个单独的表达式与流量匹配,策略将匹配流量。

    • 匹配所有表达式。仅当每个表达式都匹配流量时,策略才匹配流量。

    • 表格表达式。将“表达式”列表切换为具有三列的表格格式。在最右侧的列中,放置以下运算符之一:

      • 和(& &)运算符为了要求匹配策略,请求必须同时匹配当前表达式和以下表达式。
      • 要使用或[ ] 运算符,为了匹配策略,请求必须与当前表达式或以下表达式匹配,或者两者匹配。只有当请求不匹配任何一个表达式时,它才会与策略不匹配。

      您还可以通过选择现有表达式并单击以下运算符之一,将表达式分组到嵌套子组中:

      • 开始小组(+()运算符,它告诉Citrix ADC设备使用所选表达式开始嵌套子组。(要从表达式中删除此运算符,请单击——()。
      • 结束小组(+))运算符,它告诉Citrix ADC设备使用所选表达式结束当前嵌套的子组。(要从表达式中删除此运算符,请单击-))。
    • 高级自由表单。完全关闭表达式编辑器,并将表达式列表转换为可在其中键入复合表达式的文本区域。这是创建策略表达式的最强大和最困难的方法,仅建议熟悉Citrix ADC经典表达式语言的用户使用。

      有关在高级自由格式文本区域中创建经典表达式的详细信息,请参阅配置经典策略和表达式

      注意:如果切换到高级自由表单表达式编辑模式,则无法切换回任何其他模式。除非您确定要使用此表达式编辑模式,否则请勿选择此表达式编辑模式。

  5. 如果选择“匹配任意表达式”、“匹配所有表达式”或“表格表达式”,请单击”添加“以显示“添加表达式”对话框。

    对于缓存重定向策略,您应将表达式类型设置为常规。

  6. 在“流量类型”下拉列表中,为表达式选择流量类型。

    流类型决定策略是检查传入连接还是传出连接。您有两个选择:

    • 要求的事情。配置Citrix ADC设备以检查传入连接或请求。
    • RES。配置设备以检查传出连接或响应。
  7. 在“协议”下拉列表中,为表达式选择一个协议。

    协议确定策略在请求或响应中检查的信息类型。根据您在上一个下拉列表中选择要求还是RES,以下所有四个选项都可用,还是只有三个选项可用:

    • HTTP。配置设备以检查HTTP标头。
    • SSL。配置设备以检查SSL客户端证书。仅当您在上一个下拉列表中选择要求(请求)时才可用。
    • TCP。配置设备以检查TCP标头。
    • 知识产权。配置设备以检查源或目标IP地址。
  8. 从“限定符”下拉列表中为表达式选择一个限定符。

    限定符下拉列表的内容取决于您选择的协议。下表描述了每个协议的可用选项。

    表 1.缓存重定向策略限定符适用于每个协议

    协议 限定符 定义
    HTTP 方法 请求中使用的HTTP方法。
    - URL URL标头的内容。
    - URLTOKENS URL的HTTP标头中的令牌。
    - 版本 连接的HTTP版本。
    - HTTP请求的标头部分。
    - URLLEN URL标头内容的长度。
    - URLQUERY URL标头内容的查询部分。
    - URLQUERYLEN URL标头查询部分的长度。
    SSL 客户端.CERT SSL客户端证书作为一个整体。
    - 客户端c。主题 客户端证书主题字段的内容。
    - 客户端c。发行人 客户端证书颁发者。
    - 客户端.CER.SIGALGO 客户端证书中使用的签名算法。
    - 客户端c。版本 客户端证书版本。
    - 客户端c。有效来自 客户端证书的有效日期。(开始日期。)
    - 客户端c。有效 客户端证书不再有效的日期。(结束日期。)
    - 客户端c。序列号 客户端证书序列号。
    - 客户端密码类型 客户端证书中使用的加密方法。
    - 客户端。密码.BIT 加密密钥中的有效位数。
    - CLIENT.SSL.VERSION 客户端证书的SSL版本。
    TCP SOURCEPORT TCP连接的源端口。
    - DESTPORT TCP连接的目标端口。
    - 海量存储系统(MSS)中 TCP连接的最大段大小(MSS)。
    知识产权 来源地 连接的源IP地址。
    - DESTIP 连接的目标IP地址。
  9. 从“操作员”下拉列表中为表达式选择运算符。

    您的选择取决于您在上一步中选择的限定符。可以在此下拉列表中显示的完整运算符列表为:

    • = =。完全匹配以下文本字符串。
    • ! =。与以下文本字符串不匹配。
    • .大于以下整数。

    • 包含。包含以下文本字符串。
    • 内容。指定标头、URL或URL查询的内容。
    • 的存在。指定的标头或查询存在。
    • NOTCONTAINS。不包含以下文本字符串。
    • NOTEXISTS。指定的标头或查询不存在。

    如果您希望此策略对发送到特定主机的请求进行操作,则可以保留默认的等于(= =)符号。

  10. 如果“值”文本框可见,请在文本框中键入相应的字符串或数字。

    例如,如果您希望此策略选择发送到主机shopping.example.com的请求,则可以在“值”文本框中键入该字符串。

  11. 如果选择HATEL作为限定符,请在“标题名称“文本框中键入所需的标题。

  12. 单击”确定”将表达式添加到“表达式”列的表。

  13. 重复步骤 4 到 11 以创建其他表达式。

  14. 单击“关闭”以关闭”添加表达式”对话框,然后返回“创建缓存重定向策略”对话框。