このトピックでは、1 つの Application Load Balancer (ALB) インスタンスで単一のリスナーを設定し、異なるドメイン名への HTTPS リクエストを異なるバックエンドサーバーにルーティングすることで、複数の HTTPS Web サイトをホストする方法について説明します。
例
ALB インスタンスは HTTPS リクエスト内のドメイン名を検査し、一致する証明書を選択して認証を完了した後、設定された転送ルールに基づいてリクエストを適切なバックエンドサーバーに転送します。
このトピックでは、次の設定を例として使用します。
リスナーのデフォルト証明書
defaultはドメイン名aliyundoc.comにバインドされ、デフォルトのバックエンドサーバーグループは RS1 です。リスナーの追加証明書 example1 がドメイン名
www.example.comにバインドされている場合、https://www.example.comへのクライアントリクエストはバックエンドサーバーグループ RS1 に転送されます。リスナーの追加証明書 example2 がドメイン名
www.example.orgにバインドされている場合、https://www.example.orgへのクライアントリクエストはバックエンドサーバーグループ RS2 に転送されます。
前提条件
-
CLB インスタンスが作成されます。詳細については、「CLB インスタンスを作成および管理する」をご参照ください。
-
2 つの vServer グループ RS1 と RS2 が作成されていること。 詳細については、「vServer グループの作成と管理」をご参照ください。
-
Elastic Compute Service (ECS) インスタンス ECS01 が RS1 に追加され、別の ECS インスタンス ECS02 が RS2 に追加されていること。 アプリケーションサービスは ECS01 と ECS02 の両方にデプロイされています。
-
ドメイン名を登録し、ICP 登録を完了していること。 詳細については、「Alibaba Cloud でのドメイン名の登録」および「ICP 登録プロセス」をご参照ください。
-
サードパーティプロバイダーから証明書を購入またはアップロードして Certificate Management Service に登録し、それぞれのドメイン名にバインドする必要があります。 詳細については、「公式証明書を使用して Web ベースサービスの HTTPS アクセスを有効にする」をご参照ください。 このトピックでは、次の証明書が必要です。
-
ドメイン名
aliyundoc.comにバインドされたdefaultという名前のデフォルト証明書。 -
ドメイン名
www.example.comにバインドされたexample1という名前の証明書。 -
ドメイン名
www.example.orgにバインドされたexample2という名前の証明書。
説明証明書を使用する前に、ALB インスタンスにデプロイする必要があります。 詳細については、「証明書の作成」をご参照ください。
-
ステップ 1: HTTPS リスナーの追加
-
SLB コンソールにログインします。
-
トップメニューバーで、CLB インスタンスが配置されているリージョンを選択します。
-
インスタンス管理 ページで、対象の CLB インスタンスを見つけ、操作 列の リスナーの設定 をクリックします。
-
プロトコルとリスナー タブで、次のパラメーターを設定し、次へ をクリックします。
このトピックでは、必須パラメーターのみを説明します。 他のパラメーターはデフォルト値のままにするか、必要に応じて設定できます。
-
リスナープロトコルの選択: HTTPS を選択します。
-
リスナーポート: ポートを 443 に設定します。
-
-
SSL 証明書 タブで、アップロードしたサーバー証明書を選択し、次へ をクリックします。 この例では、
default証明書を選択します。 -
バックエンド サーバー タブで、VServer Group を選択し、サーバーグループ ドロップダウンリストから RS1 を選択します。
-
他のパラメーターはデフォルト値のままにし、確認ステップに到達するまで 次へ をクリックします。 その後、送信 をクリックします。
ステップ 2: 追加証明書の追加
-
インスタンス管理 ページで、ターゲットの CLB インスタンスを探し、ターゲットインスタンス ID をクリックします。
-
リスナー タブで、作成した HTTPS リスナーを見つけます。 操作 列で、
アイコンをクリックし、ドメイン拡張子の管理 を選択します。 -
ドメイン拡張子の管理 パネルで、ドメイン拡張子の追加 をクリックします。
-
追加の証明書 に
www.example.comを入力します。 サーバー証明書の選択 ドロップダウンリストからwww.example.comに関連付けられた証明書を選択し、OK をクリックします。 -
追加の証明書 に
www.example.orgを入力します。 サーバー証明書の選択 ドロップダウンリストからwww.example.orgに関連付けられた証明書を選択し、OK をクリックします。
説明証明書内のドメイン名が、追加するドメイン名と完全に一致することを確認してください。
-
ステップ 3: 転送ルールの設定
-
インスタンス管理 ページで、対象の CLB インスタンスの ID をクリックします。
-
リスナー タブでリスナーを見つけ、操作 列の 転送ルールの設定 をクリックします。
-
ルール パネルで、転送ルールを追加します。
この例では、ドメイン名ベースの転送ルールのみが設定されます。 URL 設定は構成されません。
-
ドメイン 列に
www.example.comを入力し、vServer グループ RS1 を選択して、さらに追加 をクリックします。 -
ドメイン 列に
www.example.orgを入力し、vServer グループ RS2 を選択して、さらに追加 をクリックします。
-
-
転送ルールを設定した後、ルール パネルを閉じます。
ステップ 4: 名前解決の設定
www.example.com および www.example.org の A レコードを、CLB インスタンスのパブリック IP アドレスにポイントするよう追加します。
-
SLB コンソールにログインします。
-
上部のナビゲーションバーで、リージョンを選択します。
-
名前解決のための CLB インスタンスを選択し、対応するパブリック IP アドレスをコピーします。
-
A レコードを追加するには:
-
Alibaba Cloud DNS コンソールにログインします。
-
インターネットの権威ある DNS 解決 ページで、ドメイン追加 をクリックします。
-
ドメイン追加 ダイアログボックスにドメイン名を入力し、OK をクリックします。
重要TXT レコードを使用してドメインの所有権を検証してください。
-
管理したいドメイン名を見つけ、Actions 列の 解決設定 をクリックします。
-
解決設定 ページで、Add Record をクリックします。
-
Add Record パネルで、次のパラメーターを設定して A レコードを追加し、OK をクリックします。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [A] を選択します。
ホストレコード
ドメイン名のプレフィックスです。
DNS リクエストソース
[デフォルト] を選択します。
レコード値
レコード値は、コピーした CLB インスタンスのパブリック IP アドレスです。
[TTL]
TTL (Time to Live) です。DNS レコードが DNS サーバにキャッシュされる時間を示します。この例では、デフォルト値を使用します。
-
ステップ 5: 結果の検証
ブラウザで www.example.com と www.example.org の両方を使用してサービスにアクセスできます。 このトピックでは、サーバーグループ RS1 と RS2 に対応する 2 つのバックエンドサーバーインスタンスに、それぞれ静的な Web ページがデプロイされています。
ブラウザで、追加証明書 example1 にバインドされたドメイン名
www.example.comを入力します。 リクエストは、設定された転送ルールに基づいてサーバーグループ RS1 のバックエンドサーバー ECS01 に転送されます。 結果は次の図のようになります。
ブラウザで、追加証明書 example2 にバインドされたドメイン名
www.example.orgを入力します。 リクエストは、設定された転送ルールに基づいてサーバーグループ RS2 のバックエンドサーバー ECS02 に転送されます。 次の図に示します。
設定完了後にドメイン名にアクセスできない場合は、ブラウザを再起動してキャッシュをクリアしてから再試行してください。
関連ドキュメント
-
同じドメイン名の異なる URL パスへのリクエストを異なるバックエンドサーバーグループに転送するには、「同じドメイン名で異なるパスに基づく転送ルールを使用して、正確なトラフィック転送を実現する」をご参照ください。
-
ドメイン名ベースおよび URL ベースの転送ルールの詳細については、「ドメイン名または URL に基づくリクエストの転送」をご参照ください。