HTTPSリスナーとHTTPリスナーを含む、Classic Load Balancer (CLB) のレイヤー7リスナーは、ドメイン名またはURLに基づく転送ルールをサポートしています。 異なるドメイン名またはURLから異なるバックエンドサーバーグループにリクエストを転送できます。 これにより、サーバーリソースが最適化された方法で割り当てられます。
制御ポリシー機能の動作
URLベースの転送ルールは文字列マッチングをサポートしています。 最長プレフィックスマッチングが使用されます。 たとえば、/abcと /abcdの2つの転送ルールが設定されており、リクエストにプレフィックス /abcdeが含まれている場合、リクエストは /abcdルールに一致します。
ドメイン名ベースの転送ルールは、完全一致とワイルドカードパターンマッチングをサポートしています。
正確なドメイン名:
www.aliyun.com
。ワイルドカードドメイン名:
* .aliyun.com
および* .market.aliyun.com
リクエストが複数のドメイン名ベースの転送ルールに一致する場合、完全一致はワイルドカードパターンマッチングよりも優先されます。 リクエストが複数のワイルドカードドメイン名と一致する場合、上位レベルのワイルドカードドメイン名が下位レベルのワイルドカードドメイン名よりも優先されます。
説明「 √ 」は、リクエストのドメイン名が転送ルールで指定されたドメイン名と一致することを示します。 「 × 」は、リクエストのドメイン名が転送ルールで指定されたドメイン名と一致しないことを示します。
モード
リクエスト URL
ドメイン名ベースの転送ルール
www.aliyun.com
*.aliyun.com
* .market.aliyun.com
正確なマッチング
www.aliyun.com
✓
×
×
ワイルドカードパターンマッチング
market.aliyun.com
×
✓
×
info.market.aliyun.com
×
×
✓
複数の転送ルールをリスナーに追加できます。 各転送ルールはvServerグループに関連付けられています。 vServerグループには、1つ以上のElastic Compute Service (ECS) インスタンスが含まれています。 読み取り要求をあるvServerグループに転送し、書き込み要求を別のvServerグループに転送するようにリスナーを設定できます。 これにより、サーバーリソース間の負荷分散を最適化できます。
転送ルールを設定すると、CLBは次のモデルを使用してトラフィックを分散するルールを適用します。
モデル1: リクエストにドメイン名が含まれている場合、システムはリクエストのドメイン名をドメイン名ベースの転送ルールと照合します。
リクエストのドメイン名が転送ルールで指定されたドメイン名と一致する場合、システムは引き続きURLと一致します。
この場合、リクエストのURLが転送ルールで指定されたURLと一致する場合、リクエストはこの転送ルールで指定されたvServerグループに転送されます。 URLに一致する転送ルールがない場合、リクエストはルートドメインベースの転送ルールに基づいて転送されます。 ルートドメインベースの転送ルールには、ドメイン名のみが含まれます。 ルートドメインベースの転送ルールではURLが指定されていません。
ドメイン名にルートドメインベースの転送ルールが設定されていない場合、エラーメッセージ404がクライアントに返されます。
リクエストのドメイン名に一致する転送ルールがない場合、リクエストはモデル2を使用して転送されます。
モデル2: リクエストにドメイン名が含まれていない場合、またはドメイン名と一致する転送ルールがない場合、リクエストはURLベースの転送ルールに基づいて転送されます。 URLベースの転送ルールにはURLのみが含まれます。 ドメイン名はURLベースの転送ルールで指定されていません。
この場合、リクエストのURLがURLベースの転送ルールで指定されたURLと一致する場合、リクエストは転送ルールで指定されたvServerグループに転送されます。 URLに一致するURLベースの転送ルールがない場合、リクエストはリスナー用に設定されたサーバーグループに転送されます。
前提条件
CLBインスタンスが作成され、CLBインスタンスのHTTPまたはHTTPSリスナーが作成されます。 詳細については、「HTTPリスナーの追加」または「HTTPSリスナーの追加」をご参照ください。
vServerグループが作成されます。 詳細については、「vServerグループの作成と管理」をご参照ください。
ドメイン名ベースまたはURLベースの転送ルールの設定
CLB コンソールにログインします。
管理するCLBインスタンスが属するリージョンを選択します。
インスタンス ページで、CLBインスタンスのIDをクリックします。
リスナー タブで、管理するレイヤー7リスナーを見つけ、操作列の 転送ルールの設定 をクリックします。
転送ルール パネルで、次のパラメーターを設定し、さらに追加 をクリックします。
ドメイン: リクエストの転送元のドメイン名を入力します。
URL: リクエストの転送元のURLを入力します。
説明リクエストのURLに特殊文字が含まれている場合は、URLエスケープコードを使用して特殊文字を変換する必要があります。 たとえば、リクエストのURLに番号記号 (#) が含まれている場合、番号記号をエスケープコード (% 23) に変換する必要があります。 このようにして、システムは、要求のURLをURLベースの転送ルールと照合することができる。
VServer Group: 転送ルールに関連付けるvServerグループを選択します。
説明: 説明を入力します。
オプション: ドメイン追加 または ルール追加 をクリックして、ドメイン名またはURLベースの転送ルールを追加します。
HTTPまたはHTTPSリスナーに設定できる転送ルールの最大数の詳細については、「制限」をご参照ください。
転送ルールの変更
転送ルールに関連付けられているバックエンドサーバーを変更できます。
CLB コンソールにログインします。
管理するCLBインスタンスが属するリージョンを選択します。
インスタンス ページで、CLBインスタンスのIDをクリックします。
リスナー タブで、管理するレイヤー7リスナーを見つけ、 操作列の 転送ルールの設定 をクリックします。
転送ルール パネルの 転送ルール セクションで、管理する転送ルールを見つけ、 操作列の [変更] をクリックします。
転送ルールを編集する パネルで、説明とvServerグループを変更します。
高度な設定 をオンにして、次のパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
転送ルール
スケジューリングアルゴリズムを選択します。
重み付きラウンドロビン (WRR): 重みの大きいバックエンドサーバーは、重みの小さいバックエンドサーバーよりも多くのリクエストを受け取ります。
ラウンドロビン (RR): リクエストはバックエンドサーバーに順番に配信されます。
セッション維持の有効化
セッション維持を有効にするかどうかを指定します。
セッション維持が有効になると、CLBはクライアントからのすべてのリクエストを同じバックエンドサーバーに転送します。
CLBは、Cookieに基づくHTTPセッションの永続性を有効にします。 CLBでは、次の方法を使用してCookieを処理できます。
クッキーオプション:
Cookieの挿入: このオプションを選択した場合、cookieのタイムアウト期間のみを指定する必要があります。
CLBは、クライアントに送信される最初のHTTPまたはHTTPS応答にcookie (SERVERID) を挿入します。 クライアントからの次のリクエストにはcookieが含まれており、リスナーはリクエストを記録されたバックエンドサーバーに転送します。
セッション永続化タイムアウト期間: [Cookieの挿入] を選択した場合、セッション永続化のタイムアウト期間を指定します。
Cookieの書き換え: このオプションを選択した場合、HTTPまたはHTTPS応答に挿入するcookieを指定する必要があります。 この場合、バックエンドサーバーのcookieのタイムアウト期間と有効期間を指定する必要があります。
cookieを指定すると、CLBは元のcookieを指定されたcookieで上書きします。 次回CLBが指定されたcookieを含むクライアント要求を受信すると、リスナーはその要求を記録されたバックエンドサーバーに配信します。
Cookie名: Cookieの書き換えを選択した場合、cookieの名前を指定する必要があります。
詳細については、「サーバーCookieの設定」をご参照ください。
ヘルスチェックの有効化
ヘルスチェック方法: デフォルト値はHEADです。
ヘルスチェックポート: ヘルスチェックでバックエンドサーバーにアクセスするために使用されるポートを指定します。
デフォルトでは、リスナー設定で指定されたバックエンドポートがプローブされます。
ヘルスチェックパス: ヘルスチェックに使用するページのURIを指定します。 静的webページでヘルスチェックを実行することを推奨します。
ヘルスチェックのドメイン名: ヘルスチェックに使用するドメイン名を指定します。 デフォルトでは、バックエンドサーバーのプライベートIPアドレスは、ヘルスチェックに使用されるドメイン名に変換されます。
通常のステータスコード: ヘルスチェックが成功したことを示すHTTPステータスコードを選択します。
デフォルトでは、http_2xxとhttp_3xxが選択されています。
レスポンスのタイムアウト: ヘルスチェック応答のタイムアウト期間を指定します。 バックエンドサーバーが指定されたタイムアウト期間内に応答しない場合、バックエンドサーバーはヘルスチェックに失敗します。 既定値:5 単位は秒です。
ヘルスチェックの間隔: 2つの連続したヘルスチェックの時間間隔を指定します。
デフォルト値:2 単位は秒です。
健全しきい値: ECSインスタンスが正常であると宣言される前に連続して実行する必要がある正常なヘルスチェックの数を指定します。
設定可能な値は 1 から 100 です。 デフォルト値: 3。
不健全しきい値: ECSインスタンスが異常と宣言される前に連続して実行する必要がある、失敗したヘルスチェックの数を指定します。
設定可能な値は 1 から 100 です。 デフォルト値: 3。
転送ルールの削除
CLB コンソールにログインします。
管理するCLBインスタンスが属するリージョンを選択します。
インスタンス ページで、CLBインスタンスのIDをクリックします。
リスナー タブで、管理するレイヤー7リスナーを見つけ、 操作列の 転送ルールの設定 をクリックします。
転送ルール パネルの 転送ルール セクションで、削除する転送ルールを見つけ、 操作列の [削除] をクリックします。
関連ドキュメント
CreateDomainExtension: 追加のドメイン名を作成します。
DescribeDomainExtensionAttribute: 追加のドメイン名を照会します。
SetDomainExtensionAttribute: 追加のドメイン名の証明書を変更します。
DescribeDomainExtensions: 追加のドメイン名を照会します。
DeleteDomainExtension: 追加のドメイン名を削除します。