クライアントからの HTTP 要求に HTTP 要求の書き換えが適用されます。

前提条件

レイヤー 7 HTTP 仮想サーバが使用できることを確認します。レイヤー 7 HTTP 仮想サーバの追加 を参照してください。

ロード バランサのルールは、一致のタイプとして正規表現をサポートします。高度な使用方法ではいくつかの制限がありますが、PCRE スタイルの正規表現パターンがサポートされています。一致条件に正規表現を使用する場合、名前付きキャプチャ グループがサポートされます。ロード バランサ ルールの正規表現を参照してください。

手順

  1. レイヤー 7 HTTP 仮想サーバを開きます。
  2. [ロード バランサ ルール] セクションの [要求書き換えフェーズ] の横で、[設定] > [ルールの追加] の順にクリックし、HTTP 要求の書き換えフェーズのロード バランサ ルールを構成します。
  3. ドロップダウン リストから一致条件を選択します。一致条件は、ロード バランサを通過するアプリケーション トラフィックを照合する際に使用されます。1 つのロード バランサ ルールに複数の一致条件を指定できます。それぞれの一致条件で、アプリケーション トラフィックの基準が定義されます。
    サポートされている一致条件 説明
    HTTP 要求メソッド HTTP 要求メソッドに一致します。

    http_request.method:一致する値

    HTTP 要求 URI クエリの引数を除いて、HTTP 要求 URI と一致します。

    http_request.uri:一致する値

    HTTP 要求の URI 引数

    HTTP 要求メッセージの URI 引数(クエリ文字列)の照合に使用されます。URI の例:http://exaple.com?foo=1&bar=2 ここで、foo=1&bar=2 が URI 引数を含むクエリ文字列です。URI スキームでは、クエリ文字列は疑問符 (?) で始まり、番号記号 (#) か URI の最後で終わります。

    http_request.uri_arguments:一致する値

    HTTP 要求バージョン HTTP 要求メッセージの HTTP プロトコルのバージョンを照合する際に使用されます。

    http_request.version:一致する値

    HTTP 要求ヘッダー HTTP 要求メッセージを HTTP ヘッダー フィールドで照合する際に使用されます。HTTP ヘッダー フィールドは、HTTP 要求および応答メッセージに含まれるヘッダー セクションのコンポーネントです。HTTP トランザクションの操作パラメータを定義します。

    http_request.header_name:一致するヘッダー名

    http_request.header_value:一致する値

    HTTP 要求の Cookie HTTP 要求メッセージを Cookie で照合する際に使用されます。これは、特殊なタイプの HTTP ヘッダーです。match_type と case_sensitive で cookie 値の比較方法を定義します。

    http_request.cookie_value:一致する値

    HTTP 要求の本文 HTTP 要求の本文の内容に一致します。

    http_request.body_value:一致する値

    クライアント SSL クライアント SSL プロファイル ID と一致します。

    ssl_profile_id:一致する値

    TCP ヘッダー ポート TCP の送信元ポートまたは宛先ポートと一致します。

    tcp_header.source_port:一致する送信元ポート

    tcp_header.destination_port:一致する宛先ポート
    IP ヘッダー ソース HTTP メッセージの IP ヘッダー フィールドと一致します。送信元のタイプは、単一の IP アドレス、IP アドレスの範囲またはグループのいずれかにする必要があります。グループの追加を参照してください。
    • IP ヘッダー ソースが選択され、IP アドレスのソース タイプが指定されている場合、HTTP メッセージの送信元 IP アドレスは、グループで構成されている IP アドレスと一致する必要があります。IPv4 と IPv6 の両方のアドレスがサポートされています。
    • IP ヘッダー ソースがグループ ソースタイプで選択されている場合は、ドロップダウン リストからグループを選択します。

    ip_header.source_address:一致する送信元の IP アドレス

    ip_header.destination_address:一致する宛先の IP アドレス
    変数 変数を作成し、この変数に値を割り当てます。
    大文字と小文字を区別 HTTP ヘッダー値を比較する場合、大文字と小文字が区別されるフラグを設定します。true の場合、HTTP 本文の値を比較するときに大文字と小文字が区別されます。
  4. ドロップダウン メニューから [一致タイプ] を選択します。[次で始まる]、[次で終わる]、[次と等しい]、[次を含む]、[正規表現に一致] を選択できます。一致タイプは、指定されたアクションの条件と照合する際に使用されます。
    一致タイプ 説明
    次で始まる 一致条件に指定された値で始まる場合、条件と一致します。
    次で終わる 一致条件に指定された値で終わる場合、条件と一致します。
    次と等しい 一致条件に指定された値と同じ場合、条件と一致します。
    次を含む 一致条件に指定した値が含まれている場合、条件と一致します。
    正規表現に一致 一致条件が指定された値と一致する場合、条件と一致します。
  5. URI を指定します。
  6. ドロップダウン メニューから、[戦略の一致] を選択します。
    戦略の一致 説明
    任意 ホストまたはパスのいずれかがこのルールと一致すると、一致とみなされます。
    すべて

    ホストとパスの両方がこのルールと一致すると、一致とみなされます。

  7. ドロップダウン メニューから操作を選択します。
    アクション 説明
    HTTP 要求 URI の書き換え

    一致する HTTP 要求メッセージの URI を書き換える場合に使用します。一致する HTTP 要求メッセージの URI と URI の引数を新しい値に書き換えるには、この条件に URI と URI の引数を指定します。HTTP メッセージの完全な URI スキームの構文は次のとおりです。Scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment このアクションの URI フィールドは、このスキーマの /path 部分の書き換えに使用されます。URI 引数フィールドは、クエリ部分を書き換えに使用されます。取得した変数と組み込みの変数は、URI と URI 引数のフィールドで使用できます。

    1. HTTP 要求の URI を入力します。
    2. URI のクエリ文字列を入力します。これには通常、キーと値のペアが含まれます。例:foo1=bar1&foo2=bar2
    HTTP 要求ヘッダーの書き換え

    一致する HTTP 要求メッセージのヘッダー フィールドを指定された新しい値に書き換える場合に使用します。

    1. ヘッダー テキストボックスの HTTP 要求メッセージの名前を入力します。
    2. ヘッダー値を入力します。
    HTTP 要求ヘッダーの削除

    HTTP_REQUEST_REWRITE フェーズで HTTP 要求メッセージのヘッダー フィールドを削除する場合に使用します。1 つのアクションで、同じヘッダー名を持つすべてのヘッダーを削除できます。異なるヘッダー名を持つヘッダーを削除するには、複数のアクションを定義する必要があります。

    • HTTP 要求メッセージのヘッダー フィールドの名前を入力します。
    変数の割り当て 変数を作成し、名前と値を割り当てます。
  8. [大文字と小文字を区別] ボタンを切り替え、HTTP ヘッダー値を比較する場合に大文字と小文字が区別されるように設定します。
  9. [否定] ボタンを切り替えて有効にします。
  10. [保存][適用] の順にクリックします。