This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
调用 HTTP 标注
配置 HTTP 标注后,可以通过在高级策略规则中包含 SYS.HTTP_CALLOUT(<name>)
表达式来调用标注。在此表达式中, <name>
是要调用的 HTTP 标注的名称。
您可以将高级策略表达式运算符与标注表达式结合使用,以处理响应,然后执行适当的操作。来自 HTTP callout Agent 的响应的返回类型决定了可用于响应的运算符集。如果要分析的响应部分是文本,则可以使用文本运算符来分析响应。例如,您可以使用 CONTAINS(<string>) 运算符检查响应的指定部分是否包含特定的字符串,如以下示例所示:
SYS.HTTP_CALLOUT(mycallout).contains("Good IP address")
<!--NeedCopy-->
如果在响应程序策略中使用上述表达式,则可以配置适当的响应程序操作。
同样,如果要评估的响应部分是数字,则可以使用 GT (int) 之类的数字运算符。如果响应包含布尔值,则可以使用布尔运算符。
注意:HTTP 标注可以递归地调用自身。通过将 HTTP 标注表达式与防止递归的高级策略表达式结合起来,可以避免 HTTP 标注递归。有关如何避免 HTTP 标注递归的信息,请参阅 避免 HTTP 标注递归。
您还可以通过配置策略,每个策略在评估之前生成的标注后调用一个标注,来级联 HTTP 标注。在这种情况下,在一个策略调用标注之后,当 NetScaler 设备在将标注发送到标注服务器之前解析标注时,第二组策略可以评估标注并调用其他标注,然后可以通过第三组策略进行评估,依此类推。下面的示例描述了这样的实现。
首先,您可以配置名为 myCallout1 的 HTTP 标注,然后配置响应程序策略 Pol1 来调用 myCallout1。然后,您可以配置第二个 HTTP 标注 myCallout2 和响应程序策略 Pol2。您可以将 Pol2 配置为评估 myCallout1 并调用 myCallout2。您可以全局绑定两个响应程序策略。
为避免 HTTP 标注递归,myCallout1 配置了一个名为“Request1”的唯一自定义 HTTP 标头。“ Pol1 配置为通过使用高级策略表达式避免 HTTP 标注递归,
HTTP.REQ.HEADER("Request1").EQ("Callout Request").NOT.
<!--NeedCopy-->
Pol2 使用相同的高级策略表达式,但不包括 .NOT 运算符,以便该策略在 NetScaler 设备解析 myCallout1 时对其进行评估。请注意,myCallout2 标识了自己的唯一标头,称为“Request2”,Pol2 包含一个高级策略表达式,以防止 myCallout2 递归调用自身。
示例:
> add policy httpCallout myCallout1
Done
> set policy httpCallout myCallout1 -IPAddress 10.102.3.95 -port 80 -returnType TEXT -hostExpr
""10.102.3.95"" -urlStemExpr ""/cgi-bin/check_clnt_from_database.pl"" -headers Request1
("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(100)"
Done
> add responder policy Pol1 "HTTP.REQ.HEADER("Request1").EQ("Callout Request").NOT &&
SYS.HTTP_CALLOUT(myCallout1).CONTAINS("IP Matched")" RESET
Done
> bind responder global Pol1 100 END -type OVERRIDE
Done
> add policy httpCallout myCallout2
Done
> set policy httpCallout myCallout2 -IPAddress 10.102.3.96 -port 80 -returnType TEXT -hostExpr
""10.102.3.96"" -urlStemExpr ""/cgi-bin/check_clnt_location_from_database.pl"" -headers Request2
("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(200)"
Done
> add responder policy Pol2 "HTTP.REQ.HEADER("Request2").EQ("Callout Request").NOT &&
HTTP.REQ.HEADER("Request1").EQ("Callout Request") && SYS.HTTP_CALLOUT(myCallout2).CONTAINS
("APAC")" RESET
Done
> bind responder global Pol2 110 END -type OVERRIDE
Done
<!--NeedCopy-->
共享
共享
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.