Citrix ADC

HTTP コールアウトの設定

HTTP コールアウトを設定するときは、要求のタイプ(HTTP または HTTPS)、要求の宛先と形式、予想される応答形式、最後に分析する応答部分を指定します。

宛先については、HTTP コールアウトエージェントの IP アドレスとポートを指定するか、負荷分散、コンテンツスイッチング、またはキャッシュリダイレクト仮想サーバーを使用して HTTP コールアウト要求を管理します。最初のケースでは、HTTPコールアウト要求は、HTTPコールアウトエージェントに直接送信されます。2 番目のケースでは、HTTP コールアウト要求は、指定された仮想サーバーの仮想 IP アドレス (VIP) に送信されます。仮想サーバーは、クライアント要求を処理するのと同じ方法で要求を処理します。たとえば、多数のコールアウトが生成されることが予想される場合、複数のサーバーで HTTP コールアウトエージェントのインスタンスを構成し、これらのインスタンスを負荷分散仮想サーバーに (サービスとして) バインドしてから、HTTP コールアウト設定で負荷分散仮想サーバーを指定できます。次に、負荷分散仮想サーバーは、負荷分散アルゴリズムによって決定された設定済みインスタンスの負荷を分散します。

HTTP コールアウト要求の形式については、HTTP コールアウト要求の個々の属性(属性ベースの HTTP コールアウト)を指定するか、HTTP コールアウト要求全体をデフォルトの構文式(式ベースの HTTP コールアウト)として指定することができます。

:アプライアンスはリクエストの有効性をチェックしません。リクエストが有効なリクエストであることを確認する必要があります。正しくないまたは不完全な HTTP コールアウト構成は、アクションに関連付けられていない実行時 UNDEF 条件になります。UNDEF 条件は、未定義のヒットカウンタを更新するだけで、誤って設定された HTTP コールアウトのトラブルシューティングを行うことができます。ただし、アプライアンスはHTTPコールアウト要求を解析して、特定のCitrix ADC機能をコールアウトに設定できるようにします。これにより、HTTP コールアウトが自身を呼び出す可能性があります。コールアウトの再帰とその回避方法については、「HTTP コールアウトの再帰の回避」を参照してください。

最後に、HTTP 要求属性を使用するか、式を使用して HTTP コールアウト要求の形式を定義するかに関係なく、HTTP コールアウトエージェントからの応答の形式と、評価する応答の部分を指定する必要があります。応答には、ブール値、数値、またはテキストを指定できます。評価する応答の部分は、式によって指定されます。たとえば、応答にテキストが含まれていることを指定する場合、HTTP.RES.BODY(<unit>) `を使用して、アプライアンスが<unit>コールアウトエージェントからの応答の最初のバイトのみを評価する必要があることを指定できます。

コマンドラインでは、最初に add コマンドを使用して HTTP コールアウトを作成します。コールアウトを追加すると、デフォルト値の GET に設定された HTTP メソッドを除き、すべてのパラメータがデフォルト値の NONE に設定されます。次に、set コマンドを使用してコールアウトのパラメータを設定します。set コマンドは、両方のタイプのコールアウト(属性ベースとエクスプレッションベース)を設定するために使用します。違いは、2 種類のコールアウトを設定するために使用されるパラメータにあります。したがって、次のコマンドライン命令には、属性ベースのコールアウトを設定するための set コマンドと、式ベースのコールアウトを設定するための set コマンドが含まれています。構成ユーティリティでは、これらの構成タスクはすべて 1 つのダイアログボックスで実行されます。

注意:HTTP コールアウトをポリシーに入れる前に、戻り値の型を除くすべての設定済みパラメータを変更できます。HTTP コールアウトがポリシーに入ると、コールアウトで設定されている式を完全に変更することはできません。たとえば、クライアント.IP.SRC に HTTP.REQ ヘッダー (「マイバル」) を変更することはできません。ただし、式に渡される演算子と引数は変更できます。たとえば、HTTP.REQ.HEADER("myVal1")HTTP.REQ.HEADER("myVal2")にまたはHTTP.REQ.HEADER("myVal")HTTP.REQ.HEADER("myVal").AFTER_STR(<string>)に変更できます。set コマンドが失敗した場合は、新しい HTTP コールアウトを作成します。

HTTP コールアウト設定では、デフォルトの構文式を設定します。既定の構文式の構成の詳細については、「既定の構文式の構成:はじめに」を参照してください。

コマンドラインインターフェイスを使用して HTTP コールアウトを構成するには

コマンドプロンプトで、次の操作を行います。

  1. HTTP コールアウトを作成します。

    add policy httpCallout <name>

    add policy httpCallout mycallout
    
  2. HTTP コールアウトの詳細を設定します。

    • 属性ベースの HTTP コールアウトを設定するには、次のように入力します。
    set policy httpCallout <name> [-IPAddress <ip_addr|ipv6_addr|\*>] [-port <port|\*>] [-vServer <string>] [-returnType <returnType>] [-httpMethod ( GET | POST )] [-hostExpr <string>] [-urlStemExpr <string>] [-headers <name(value)> ...] [-parameters <name(value)> ...] [-resultExpr <string>]
    

    :

    > set policy httpCallout mycallout -vserver lbv1 -returnType num -httpMethod GET -hostExpr 'http.req.header("Host")'
    -urlStemExpr "http.req.url" -parameters Name("My Name") -headers Name("MyHeader")
    -resultExpr "http.res.body(10000).length"
    
    

    式ベースの HTTP コールアウトを構成するには、次のように入力します。

    set policy httpCallout <name> [-vServer <string>] [-returnType <returnType>] [-httpMethod ( GET | POST )] [-fullReqExpr <string>] [-resultExpr <string>]
    

    :

    > set policy httpCallout mycallout1 -vserver lbv1 -returnType num -httpMethod GET
    -fullReqExpr q{"GET " + http.req.url + "HTTP/" + http.req.version.major + "." + http.req.version.minor.sub(1)+
    "r\nHost:10.101.10.10\r\nAccept: \*/\*\r\n\r\n"}
    
  3. HTTP コールアウトの設定を確認します。

    show policy httpCallout <name>

構成ユーティリティを使用して HTTP コールアウトを構成するには

  1. [AppExpert] > [HTTP コールアウト] に移動します。
  2. 詳細ウィンドウで、[追加] をクリックします。
  3. HTTP コールアウトの作成 」ダイアログボックスで、HTTP コールアウトのパラメータを設定します。パラメータの説明を参照するには、チェックボックスの上にマウスカーソルを置きます。
  4. [Create] をクリックしてから、[Close] をクリックします。

HTTP コールアウトの設定