Edge プロキシサーバーでロードバランサーを使用する

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:5分
  • ロードバランサーを使用して、エッジ暗号化プロキシ設定のプロキシサーバー間の負荷を分散することができます。 ロードバランサーとプロキシサーバーが異なるポートを使用している場合は、ユーザーがブラウザで応答を表示できるように、ロードバランサーのホスト名と HTTPS ポートを指定します。

    重要:
    すべての本番環境で、冗長性のためにエッジ暗号化プロキシサーバーを少なくとも 2 つ用意してください。

    ロードバランサーを使用しない Edge 要求の処理

    ロードバランサーを使用していない場合、要求は次のように処理されます。
    1. ユーザーがブラウザーから要求を出します。
    2. ブラウザーが Edge プロキシサーバーに要求を送信します。
    3. プロキシサーバーが ServiceNow インスタンスに要求を送信します。
    4. ServiceNow インスタンスがプロキシサーバーに応答を返します。
    5. プロキシサーバーは、ユーザーのブラウザーに応答を返す前に、応答ヘッダーに自分自身のポート番号を追加します。

    ユーザーは、応答ヘッダーで指定されたポート番号でプロキシサーバーからの応答を表示できます。これで、要求は正常に完了します。

    ロードバランサーを使用した Edge 要求の処理

    これに対して、ロードバランサーを使用している場合、ユーザーのブラウザーはプロキシサーバーと通信するのではなくロードバランサーと直接通信します。要求は次のように処理されます。
    注:
    この例では、プロキシサーバーのポート番号として 1025 を使用しています。
    1. ユーザーがブラウザーから要求を出します。
    2. ブラウザーが要求をロードバランサー仮想 IP (VIP) (仮想サーバーとも呼ばれます) に送信します。
    3. VIP は、プロキシサーバーを指し示すように設定されています (10.2.200.148:1025 など)。そのため、ロードバランサーは要求をプロキシサーバーに転送します。
    4. プロキシサーバーが ServiceNow インスタンスに要求を送信します。
    5. ServiceNow インスタンスがプロキシサーバーに応答を返します。
    6. プロキシサーバーは、応答内のロケーション ヘッダーを、risk-servicenow.dev.echonet:1025 のプロパティで設定された値に書き換えます。
      • ホストedgencryption.proxy.host
      • HTTP ポートedgeencryption.proxy.http.port
      • HTTPS ポートedgeencryption.proxy.https.port
    7. プロキシサーバーは、プロキシサーバー ポートを指し示しているロケーション ヘッダーを使用して、応答をロードバランサーに転送します。
    この結果は、ロードバランサーとプロキシサーバーが同じポートを使用しているかどうかによって異なります。
    • ロードバランサーとプロキシサーバーが同じポートを使用している場合、ユーザーは応答ヘッダーで識別される同じポートから応答を受け取るため、要求は成功します。
    • ロードバランサーとプロキシサーバーが異なるポートを使用している場合、ユーザーのブラウザーはロードバランサーとのみ通信しますが、応答はプロキシサーバー上にあるため、要求は失敗します。

    解決策

    この問題は、単にロードバランサーとすべての Edge プロキシサーバーを同じポート上で使用して解決できます。ただし、これは理想的な解決策ではありません。より良い解決策として、ロードバランサーがどのポートを使用しているかをシステムが認識できるようにします。

    プロキシサーバーとロードバランサーが異なるポートを使用している場合、次のプロパティを使用すると、Edge プロキシサーバーが応答メッセージをロードバランサーに再ルーティングできます。
    • edgeencryption.proxy.rewrite.location.host は、ロードバランサー経由で ServiceNow にアクセスするために使用するホスト名を指定します。
    • edgeencryption.proxy.rewrite.location.https.port は、ロードバランサー経由で ServiceNow にアクセスするために使用する HTTPS ポートを指定します。

    ロードバランサーの設定を行う

    ロードバランサーとプロキシサーバーが異なるポートを使用している場合は、ユーザーがブラウザで応答を表示できるように、ロードバランサーのホスト名と HTTPS ポートを指定します。

    始める前に

    必要なロール:
    • Windows ホストでのローカルアドミニストレーターまたはドメインアドミニストレーター
    • Linux ホスト上のファイルシステムへのフルアクセス権限があるサービスユーザー

    手順

    1. アドミン、ドメインアドミン、またはサービス ユーザーとして、プロキシサーバー ホストにログインします。
    2. Edge プロキシのインストール ディレクトリーに移動し、conf/edgeencryption.properties を選択します。
    3. 次のプロパティを設定します。
      プロパティ 説明
      edgeencryption.proxy.rewrite.location.host Edge の構成にプロキシサーバー間の負荷分散を行うロードバランサーが含まれている場合は、応答をロードバランサーに書き換えて要求を完了させることができます。
      • プロキシのセットアップでロードバランサーが存在する場合は、ロードバランサー経由で ServiceNow にアクセスするために使用するホスト名を指定します。
      • オプション:プロキシのセットアップでロードバランサーが存在しない場合は、プロキシサーバーが使用するホスト名に設定することができます。
      edgeencryption.proxy.rewrite.location.https.port Edge の構成にプロキシサーバー間の負荷分散を行うロードバランサーが含まれている場合は、ロードバランサー経由で ServiceNow にアクセスするために使用する HTTPS ポートを指定します。
      • 構成にロードバランサーが存在する場合は、ロードバランサー経由で ServiceNow にアクセスするために使用する HTTPS ポートを指定します。
      • オプション:構成にロードバランサーが存在しない場合は、プロキシサーバーが使用する HTTPS ポートに設定することができます。
    4. ファイルを保存します。

    タスクの結果

    これで、ユーザーはブラウザーでレスポンスを表示できるようになり、要求を完了できます