このトピックでは、API Gatewayでホストヘッダーとホストヘッダー設定の優先度を設定する方法について説明します。
概要
Hostヘッダーは、複数のwebアプリケーションまたはサイトが同じバックエンドサーバーに存在する場合、どのバックエンドサービスAPI Gatewayにリクエストを転送するかを指定します。この場合、アプリケーションまたはサイトはIPアドレスを共有します。 設定例:
APIのバックエンドサービスは仮想プライベートクラウド (VPC) タイプであり、複数のアプリケーションまたはサイトが関連付けられたVPCで実行されます。 この場合、Hostヘッダーは、API Gatewayがリクエストを転送するアプリケーションまたはサイトを指定するために使用されます。
1. APIグループのホストヘッダーのパスを有効にする
APIグループの詳細ページの [リクエストヘッダーのパススルー設定] セクションで、[ホストヘッダーのパス] を選択します。 [Host Headerを渡す] を選択した後、API Gatewayはリクエスト内のHost headerパラメーターをバックエンドサービスに渡し、バックエンドホストの設定 (domain:port文字列など) を置き換えます。 [ホストヘッダーを渡す] を選択しない場合、API Gatewayは指定したホストヘッダーをバックエンドサービスに送信します。
2. API定义にホスト定数パラメーターを追加する
APIを作成するときに、hostという定数パラメータを追加できます。 [パラメーターの場所] 列に [ヘッド] を選択し、この定数パラメーターの値としてバックエンドサービスのドメイン名を設定する必要があります。
3。 VPCアクセス許可のHostパラメーターの設定
API Gatewayコンソールにログインします。 左側のナビゲーションウィンドウで、[Open API] > [VPC] を選択します。 目的のVPCが配置されているリージョンを選択し、[権限の作成] をクリックします。 [VPCアクセスの作成] ダイアログボックスで、[ホスト] を指定します。
4。 バックエンドサービスのホストを構成する
API Gatewayコンソールにログインします。 左側のナビゲーションウィンドウで、[APIを開く] > [バックエンドサービス] を選択します。 右上隅の [バックエンドサービスの作成] をクリックし、HTTP/HTTPSまたはVPCタイプのバックエンドサービスを作成します。 これら2つのタイプのみがホスト構成をサポートします。 バックエンドサービスを作成したら、バックエンドサービスを見つけて、[操作] 列の [バックエンドサービスの設定と関連APIの表示] を選択します。 [バックエンドサービスの定義] ページで、タブをクリックしてテストなどの環境を選択し、右上隅の [作成] をクリックしてバックエンドサービスのURLとホストを定義します。
5。 バックエンドルーティングプラグインでのHostヘッダーの設定
ホストヘッダーを指定するには、httpTargetHostNameまたはvpcTargetHostNameパラメーターを使用できます。 バックエンドルーティングプラグインの設定の優先度が最も高くなります。 詳細については、「バックエンドルーティングプラグイン」のセクション1.3をご参照ください。
ホストヘッダー設定の優先度
5つの方法すべてでHostヘッダーを設定すると、設定は次の優先順位に基づいて有効になります。バックエンドルーティングプラグイン> バックエンドサービスの設定> VPCアクセス許可> APIグループの設定> API定義。
APIグループのHost Headerを渡すを選択した後、API Gatewayはリクエスト内のHost headerパラメーターをバックエンドサービスに渡し、バックエンドホストの設定 (domain:port文字列など) を置き換えます。 例:
ホストヘッダー値iがリクエストにs apigateway.test.comされ、バックエンドサービスURL iがs backend.test.comされ、ホストヘッダーを渡すことが有効になっている場合、API Gatewayはリクエストをo apigateway.test.comに転送します。