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 コールアウトの再帰の回避
Citrix ADCアプライアンスはHTTPコールアウト要求の有効性をチェックしませんが、要求をHTTPコールアウトエージェントに送信する前に一度解析します。この解析により、アプライアンスはコールアウト要求を他の着信要求として処理できます。これにより、コールアウト要求に対して機能するように、いくつかの便利なCitrix ADC機能(統合キャッシュなど)を設定できます。
ただし、この解析中に HTTP コールアウト要求は同じポリシーを選択できるため、再帰的にそれ自体を呼び出すことができます。アプライアンスは再帰呼び出しを検出し、未定義(UNDEF)状態を生成します。ただし、再帰呼び出しにより、ポリシーと HTTP コールアウト選択カウンタは、それぞれ 1 カウントではなく、それぞれ 2 カウントずつ増加します。
コールアウトがコールアウト自体を呼び出さないようにするには、HTTP コールアウトリクエストの一意な特性を少なくとも 1 つ指定し、コールアウトを呼び出すポリシールールによってこの特性を持つすべてのリクエストが処理されないようにする必要があります。そのためには、ポリシールールに別の既定の構文式を含めます。式は、コールアウトSYS.HTTP_CALLOUT(<name>)
式が評価される前に評価されるように、式の前に指定する必要があります。次に例を示します:
<Expression that prevents callout recursion> OR SYS.HTTP_CALLOUT(<name>)
<!--NeedCopy-->
この方法でポリシールールを構成すると、アプライアンスが要求を生成して解析すると、複合ルールが FALSE と評価され、コールアウトが 2 回目に生成されず、選択カウンタが正しくインクリメントされます。
HTTP コールアウト要求に一意の特性を割り当てる方法の 1 つは、コールアウトを設定するときに一意のカスタム HTTP ヘッダーを含めることです。以下は、「myCallout」と呼ばれるHTTPコールアウトの例です。コールアウトは、クライアントの IP アドレスがブラックリストに登録された IP アドレスのデータベースに存在するかどうかをチェックする HTTP 要求を生成します。吹き出しには「Request」というカスタムヘッダーが含まれており、この値は「Callout Request」の値に設定されます。グローバルにバインドされたレスポンダーポリシー「Pol1」は HTTP コールアウトを呼び出しますが、Request ヘッダーがこの値に設定されているすべてのリクエストを除外するため、myCallout の 2 回目の呼び出しが防止されます。2 番目の呼び出しを防ぐ式は HTTP.REQ.HEADER (「リクエスト」) .EQ (「コールアウト要求」) です。
例:
> add policy httpCallout myCallout
Done
> set policy httpCallout myCallout -IPAddress 10.102.3.95 -port 80 -returnType TEXT -hostExpr ""10.102.3.95"" -urlStemExpr ""/cgi-bin/check_clnt_from_database.pl"" -headers Request("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(100)"
Done
> add responder policy Pol1 "HTTP.REQ.HEADER("Request").EQ("Callout Request").NOT && SYS.HTTP_CALLOUT(myCallout).CONTAINS("IP Matched")" RESET
Done
> bind responder global Pol1 100 END -type OVERRIDE
Done
<!--NeedCopy-->
注: リクエストURLにHTTPコールアウト用に設定されたstem式が含まれているかどうかを確認する式を設定することもできます。ソリューションを実装するには、HTTP コールアウトエージェントが HTTP コールアウトにのみ応答し、アプライアンスを経由する他の要求には応答しないようにします。HTTP コールアウトエージェントが他のクライアント要求を処理するアプリケーションまたは Web サーバーである場合、このような式により、アプライアンスはこれらのクライアント要求を処理できなくなります。代わりに、前述のように一意のカスタムヘッダーを使用します。
共有
共有
この記事の概要
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.