配置缓存重定向策略
缓存重定向策略包含一个或多个表达式(也称为规则)。每个表达式都表示在将客户端请求与策略进行比较时评估的条件。
您不显式配置缓存重定向策略的操作。默认情况下,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配置一个简单表达式的缓存重定向策略
导航到流量管理 > 缓存重定向 > 策略。
在详细信息窗格中,单击添加(添加)。
在“创建缓存重定向策略”对话框的“名称*”文本框中,键入策略的名称,然后在“表达式”区域中,单击“添加”。
要配置简单表达式,请输入表达式。以下是检查URL中的jpeg扩展名的表达式示例:
- 表达式类型
- 流量类型要求
- 通信协议
- 限定符url
- 操作员-!=
- 值-/jpeg
以下示例中的简单表达式检查请求中的If-Modiied-Ii标头:
- 表达式类型
- 流量类型要求
- 通信协议
- 限定符标题
- 运算符-存在
- 标题名称-如果已修改-自
完成输入表达式后,单击确定或创建,然后单击关闭。
使用GUI配置具有复合表达式的缓存重定向策略
导航到流量管理 > 缓存重定向 > 策略。
在详细信息窗格中,单击添加(添加)。
在“名称“文本框中,输入策略的名称。
名称可以以字母、数字或下划线符号开头,可以由一到 127 个字母、数字和连字符 (-)、句点 (#)、空格 ()、位于 (@)、等于 (=) 和下划线 (_) 符号组成。您应该选择一个名称,使其他人能够轻松告诉创建此策略要检测的内容类型。
选择要创建的复合表达式的类型。选项包括:
匹配任何表达式。如果一个或多个单独的表达式与流量匹配,策略将匹配流量。
匹配所有表达式。仅当每个表达式都匹配流量时,策略才匹配流量。
表格表达式。将“表达式”列表切换为具有三列的表格格式。在最右侧的列中,放置以下运算符之一:
- 和(& &)运算符为了要求匹配策略,请求必须同时匹配当前表达式和以下表达式。
-
要使用或[ ] 运算符,为了匹配策略,请求必须与当前表达式或以下表达式匹配,或者两者匹配。只有当请求不匹配任何一个表达式时,它才会与策略不匹配。
您还可以通过选择现有表达式并单击以下运算符之一,将表达式分组到嵌套子组中:
- 开始小组(+()运算符,它告诉Citrix ADC设备使用所选表达式开始嵌套子组。(要从表达式中删除此运算符,请单击——()。
- 结束小组(+))运算符,它告诉Citrix ADC设备使用所选表达式结束当前嵌套的子组。(要从表达式中删除此运算符,请单击-))。
高级自由表单。完全关闭表达式编辑器,并将表达式列表转换为可在其中键入复合表达式的文本区域。这是创建策略表达式的最强大和最困难的方法,仅建议熟悉Citrix ADC经典表达式语言的用户使用。
有关在高级自由格式文本区域中创建经典表达式的详细信息,请参阅配置经典策略和表达式。
注意:如果切换到高级自由表单表达式编辑模式,则无法切换回任何其他模式。除非您确定要使用此表达式编辑模式,否则请勿选择此表达式编辑模式。
如果选择“匹配任意表达式”、“匹配所有表达式”或“表格表达式”,请单击”添加“以显示“添加表达式”对话框。
对于缓存重定向策略,您应将表达式类型设置为常规。
在“流量类型”下拉列表中,为表达式选择流量类型。
流类型决定策略是检查传入连接还是传出连接。您有两个选择:
- 要求的事情。配置Citrix ADC设备以检查传入连接或请求。
- RES。配置设备以检查传出连接或响应。
在“协议”下拉列表中,为表达式选择一个协议。
协议确定策略在请求或响应中检查的信息类型。根据您在上一个下拉列表中选择要求还是RES,以下所有四个选项都可用,还是只有三个选项可用:
- HTTP。配置设备以检查HTTP标头。
- SSL。配置设备以检查SSL客户端证书。仅当您在上一个下拉列表中选择要求(请求)时才可用。
- TCP。配置设备以检查TCP标头。
- 知识产权。配置设备以检查源或目标IP地址。
从“限定符”下拉列表中为表达式选择一个限定符。
限定符下拉列表的内容取决于您选择的协议。下表描述了每个协议的可用选项。
表 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地址。 从“操作员”下拉列表中为表达式选择运算符。
您的选择取决于您在上一步中选择的限定符。可以在此下拉列表中显示的完整运算符列表为:
- = =。完全匹配以下文本字符串。
- ! =。与以下文本字符串不匹配。
-
.大于以下整数。
- 包含。包含以下文本字符串。
- 内容。指定标头、URL或URL查询的内容。
- 的存在。指定的标头或查询存在。
- NOTCONTAINS。不包含以下文本字符串。
- NOTEXISTS。指定的标头或查询不存在。
如果您希望此策略对发送到特定主机的请求进行操作,则可以保留默认的等于(= =)符号。
如果“值”文本框可见,请在文本框中键入相应的字符串或数字。
例如,如果您希望此策略选择发送到主机shopping.example.com的请求,则可以在“值”文本框中键入该字符串。
如果选择HATEL作为限定符,请在“标题名称“文本框中键入所需的标题。
单击”确定”将表达式添加到“表达式”列的表。
重复步骤 4 到 11 以创建其他表达式。
单击“关闭”以关闭”添加表达式”对话框,然后返回“创建缓存重定向策略”对话框。