配置缓存重定向策略
缓存重定向策略包括一个或多个表达式(也称为规则).每个表达式表示一个条件,该条件在将客户端请求与策略进行比较时进行计算。
您没有为缓存重定向策略显式配置操作。默认情况下,NetScaler设备认为任何匹配策略的请求都是不可缓存的,并将请求定向到源服务器而不是缓存。
调用基于经典策略格式的缓存重定向策略经典的缓存重定向策略.每个这样的策略都有一个名称,并包括一个经典表达式或一组通过使用逻辑运算符组合的经典表达式。
对于经典的缓存重定向策略,您不需要为策略显式配置操作。默认情况下,NetScaler设备认为任何匹配策略的请求都是不可缓存的,并将请求定向到源服务器而不是缓存。
调用基于较新的策略格式的缓存重定向策略先进的重定向策略.这种策略有一个名称,包括一个默认语法表达式,或一组使用逻辑操作符组合的默认语法表达式,以及以下内置操作:
- 缓存
- 起源
有关经典表达式和默认语法表达式的更多信息,请参见政策和表达式.
该任务指导系统管理员通过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
该任务指导管理员通过命令行添加默认语法缓存重定向策略
在命令提示符下,输入以下命令添加缓存重定向策略并验证配置:
- 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修改或移除缓存重定向策略
- 要修改缓存重定向策略,可以使用set cr policy命令,它与add cr policy命令类似,只是输入的是现有策略的名称。
- 要删除策略,请使用
rm cr政策
命令,该命令只接受参数。如果策略绑定到虚拟服务器,则必须先解除绑定,然后才能移除策略。
解绑定缓存重定向策略的详细信息,请参见“从缓存重定向虚拟服务器解绑定策略.”
使用GUI使用简单的表达式配置缓存重定向策略
进入“流量管理>缓存重定向>策略”界面。
在详细信息窗格中,单击Add。
在“创建缓存重定向策略”对话框中,在“名称*”文本框中,键入策略的名称,然后在“表达式”区域中,单击“添加”。
要配置简单表达式,请输入表达式。下面是一个在URL中检查.jpeg扩展名的表达式示例:
- 表达Type-General
- 流类型要求
- http协议
- 限定符url
- 运营商——! =
- 值* / * . jpeg
下面示例中的简单表达式检查请求中的If-Modified-Since头:
- 表达式类型一般
- 流类型要求
- http协议
- 限定符筒式水管
- 运营商存在
- 标题名称-If-Modified-Since
输入表达式完成后,单击OK或Create,然后单击Close。
使用GUI使用复合表达式配置缓存重定向策略
进入“流量管理>缓存重定向>策略”界面。
在详细信息窗格中,单击Add。
在“名称”文本框中输入策略的名称。
名称以字母、数字或“_”开头,长度范围为1 ~ 127个字符,由字母、数字、“-”、“。”、“#”、“空格”、“@”、“=”、“_”组成。您应该选择一个名称,以便其他人能够轻松地知道创建此策略要检测的内容类型。
选择要创建的复合表达式的类型。你的选择是:
- 匹配任何表情.如果有一个或多个表达式匹配流量,则策略匹配流量。
匹配所有表情.只有每个表达式都匹配流量,策略才会匹配流量。
表表达式.将表达式列表切换为带有三列的表格格式。在最右边的一列中,放置以下操作符之一:
- AND[&&]操作符要求,要匹配策略,请求必须同时匹配当前表达式和以下表达式。
-
或( 操作符要求,要匹配策略,请求必须匹配当前表达式或下一个表达式,或两者都匹配。只有当请求不匹配任何一个表达式时,它才不匹配策略。
还可以通过选择现有表达式并单击以下操作符之一,将表达式分组到嵌套子组中:
- BEGIN SUBGROUP[+(]操作符,它告诉NetScaler设备使用选定的表达式开始一个嵌套子组。(要从表达式中删除该操作符,请单击-(.)
- END SUBGROUP[+)]操作符,它告诉NetScaler设备使用选定的表达式结束当前嵌套的子组。(要从表达式中删除该操作符,请单击-)。)
先进的自由.完全关闭表达式编辑器,并将表达式列表转换为可在其中键入复合表达式的文本区域。这是创建策略表达式的最强大也是最困难的方法,仅推荐那些完全熟悉NetScaler设备经典表达式语言的人使用。
有关在高级自由格式文本区域创建经典表达式的更多信息,请参见“配置经典策略和表达式”。
警告:如果您切换到高级自由形式表达式编辑模式,则不能切换回任何其他模式。不要选择此表达式编辑模式,除非您确定要使用它。
如果选择“匹配任意表达式”、“匹配所有表达式”或“表格表达式”,单击添加,显示“添加表达式”对话框。
对于缓存重定向策略,应该将表达式类型设置为General。
在流类型下拉列表中,为您的表达式选择流类型。
流类型决定了策略是检查传入连接还是传出连接。你有两个选择:
- 要求的事情.配置NetScaler设备以检查传入的连接或请求。
- RES.配置设备以检查传出连接或响应。
在“协议”下拉列表中,为您的表达式选择协议。
协议确定策略在请求或响应中检查的信息类型。根据您在上一个下拉列表中选择的是REQ还是RES,以下四个选项或者只有三个选项是可用的:
- HTTP.配置设备以检查HTTP头。
- SSL.配置设备以检查SSL客户端证书。只有在前面的下拉列表中选择REQ(请求)时才可用。
- TCP.配置设备以检查TCP头。
- 知识产权.配置设备以检查源或目的IP地址。
从“限定符”下拉列表中选择表达式的限定符。
Qualifier下拉列表的内容取决于您选择的协议。下表描述了每种协议可用的选项。
表1。每个协议可用的缓存重定向策略限定符
协议 限定符 定义 HTTP 方法 请求中使用的HTTP方法。 - URL URL头的内容。 - URLTOKENS HTTP头中的URL标记。 - 版本 连接的HTTP版本。 - 头 HTTP请求的报头部分。 - URLLEN URL头内容的长度。 - URLQUERY 查询URL头的内容部分。 - URLQUERYLEN URL头的查询部分的长度。 SSL 客户端。CERT SSL客户端证书作为一个整体。 - CLIENT.CERT.SUBJECT 客户端证书主题字段的内容。 - CLIENT.CERT.ISSUER 客户端证书发行者。 - CLIENT.CERT.SIGALGO 客户端证书中使用的签名算法。 - CLIENT.CERT.VERSION 客户端证书的版本。 - CLIENT.CERT.VALIDFROM 客户端证书的有效日期。(开始日期)。 - CLIENT.CERT.VALIDTO 客户端证书失效的日期。(结束日期)。 - CLIENT.CERT.SERIALNUMBER 客户端证书序列号。 - CLIENT.CIPHER.TYPE 客户端证书的加密方式。 - CLIENT.CIPHER.BITS 加密密钥中有效位的数目。 - CLIENT.SSL.VERSION 客户端证书的SSL版本。 TCP SOURCEPORT TCP连接的源端口。 - DESTPORT TCP连接的目的端口。 - 海量存储系统(MSS)中 TCP连接的最大段大小。 知识产权 SOURCEIP 连接的源IP地址。 - DESTIP 连接的目的IP地址。 从“操作符”下拉列表中选择表达式的操作符。
您的选择取决于您在上一步中选择的限定符。该下拉列表中可以出现的完整操作符列表为:
- = =。精确匹配下面的文本字符串。
- ! =。不匹配下面的文本字符串。
-
.大于以下整数。
- 包含。包含以下文本字符串。
- 内容。指定头、URL或URL查询的内容。
- 的存在。指定的头或查询已经存在。
- NOTCONTAINS。不包含以下文本字符串。
- NOTEXISTS。指定的头或查询不存在。
如果希望此策略对发送到特定主机的请求进行操作,可以保留默认的等号(==)。
如果“值”文本框可见,请在文本框中键入适当的字符串或数字。
例如,如果您希望此策略选择发送到主机shopping.example.com的请求,则可以在Value文本框中键入该字符串。
如果选择HEADER作为限定符,请在HEADER Name文本框中键入所需的头部。
单击OK将表达式添加到表达式列表中。
重复步骤4到步骤11以创建其他表达式。
单击“关闭”关闭“添加表达式”对话框,返回“创建缓存重定向策略”对话框。