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 コールアウト再帰の回避
NetScalerアプライアンスはHTTPコールアウトリクエストの有効性をチェックしませんが、リクエストをHTTPコールアウトエージェントに送信する前にリクエストを一度解析します。この解析により、アプライアンスはコールアウトリクエストを他の着信リクエストと同様に扱うことができるため、コールアウトリクエストを処理するようにいくつかの便利なNetScaler機能(統合キャッシュなど)を構成できます。
ただし、この解析中、HTTP コールアウト要求は同じポリシーを選択し、それ自体を再帰的に呼び出すことができます。アプライアンスは再帰呼び出しを検出し、未定義(UNDEF)条件を発生させます。ただし、再帰呼び出しにより、ポリシーおよび HTTP コールアウト選択カウンタは、それぞれ 1 カウントではなく、2 カウントずつ増加します。
コールアウトが自身を呼び出さないようにするには、HTTPコールアウト・リクエストの一意の特性を少なくとも1つ特定し、この特性を持つすべてのリクエストを、コールアウトを呼び出すポリシールールによって処理されないようにする必要があります。そのためには、ポリシールールに別の Advanced ポリシー式を含めます。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(“Request”).EQ(“Callout Request”).NOTです。
例:
> 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 コールアウト用に設定されたステム式が含まれているかどうかを確認する式を設定することもできます。このソリューションを実装するには、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.