Azure Front Door のルール セットは、一致条件とアクションを組み合わせたルールで構成されます。 この記事では、ルール セットで使用できるアクションについて詳しく説明します。 アクションには、一致条件によって識別された要求の種類に適用される動作が定義されています。 ルール セットでは、1 つのルールに最大 5 つのアクションを割り当てることができます。 また、Front Door のルール セット アクションでは、サーバー変数がサポートされます。
ルール セットでは、以下のアクションを使用できます。
ルート構成のオーバーライド
ルート構成のオーバーライド アクションは、要求に使用する配信元グループまたはキャッシュ構成をオーバーライドする目的で使用されます。 ルートに指定されている配信元グループの構成をオーバーライドするか、優先するかを選択できます。 ただし、ルート構成をオーバーライドする場合は、キャッシュを構成する必要があります。 それ以外の場合、キャッシュは要求に対して無効になります。
また、次のような特定の要求に対してファイルをキャッシュする方法をオーバーライドすることもできます。
- 配信元によって指定されたキャッシュ動作をオーバーライドする。
- クエリ文字列パラメーターを使用して要求のキャッシュ キーを生成する方法。
- 有効期限 (TTL) 値を使用して、コンテンツがキャッシュに保持される時間を制御する。
プロパティ
| プロパティ | サポートされている値 |
|---|---|
| 配信元グループの上書き |
|
| キャッシュ |
|
[Override origin group] (配信元グループのオーバーライド) を [Yes] (はい) に設定する場合は、次のプロパティを設定します。
| プロパティ | サポートされている値 |
|---|---|
| 起源グループ | 要求のルーティング先となる配信元グループ。 この設定は、Front Door エンドポイント ルートに指定された構成よりも優先されます。 |
| 転送プロトコル | 要求を配信元に転送するときに使用する Front Door のプロトコル。 サポートされる値は、[HTTP のみ]、[HTTPS のみ]、[一致受信要求] です。 この設定は、Front Door エンドポイント ルートに指定された構成よりも優先されます。 |
[キャッシュ] を [有効] に設定する場合は、次のプロパティを設定します。
| プロパティ | サポートされている値 |
|---|---|
| クエリ文字列のキャッシュ動作 |
|
| クエリ パラメーター | コンマで区切られた、クエリ文字列パラメーターの名前の一覧。 このプロパティは、"クエリ文字列のキャッシュ動作" が、"指定したクエリ文字列を無視する" または "指定したクエリ文字列を含める" に設定されている場合にのみ設定されます。 |
| 圧縮 |
|
| キャッシュの動作 |
|
| Cache duration (キャッシュ期間) |
キャッシュ動作が Override always または Override if origin missing に設定されている場合、これらのフィールドでは、使用するキャッシュ期間を指定する必要があります。 最大期間は 366 日です。 このプロパティは、"キャッシュの動作" が "Override always" (常にオーバーライド) または "Override if origin missing" (配信元が見つからない場合にオーバーライド) に設定されている場合にのみ設定されます。
|
例示
この例では、Front Door エンドポイント ルートの構成にかかわらず、マッチしたすべての要求を MyOriginGroup という配信元グループにルーティングします。
この例では、キャッシュ キーを設定して、customerId という名前のクエリ文字列パラメーターを含めます。 圧縮が有効になり、配信元のキャッシュ ポリシーが受け入れられます。
この例では、キャッシュ期間がまだ指定されていない一致する要求の場合、キャッシュの有効期限を 6 時間にオーバーライドします。 Front Door は、キャッシュ キーを決定するときにクエリ文字列を無視し、圧縮が有効になります。
要求ヘッダーの変更
要求ヘッダーの変更アクションを使用して、配信元に送信されるときに、ヘッダーを変更します。
プロパティ
| プロパティ | サポートされている値 |
|---|---|
| 演算子 |
|
| ヘッダー名 | 変更するヘッダーの名前。 |
| ヘッダー値 | 追加または上書きする値。 |
例
この例では、AdditionalValue 要求ヘッダーに値 MyRequestHeader を追加します。 配信元で応答ヘッダーの値を ValueSetByClient に設定した場合、このアクションが適用されると、要求ヘッダーの値は ValueSetByClientAdditionalValue になります。
注
特定の Azure Front Door 予約済みヘッダーには、要求ヘッダーと応答ヘッダーを変更するアクションなど、ルール エンジン アクションを使用して変更できないものがあります。 次の予約済みヘッダーの一覧と、x-ec と x-fd のプレフィックスが付いたヘッダーは変更できません。
Accept-RangesHostConnectionContent-LengthTransfer-EncodingTELast-ModifiedKeep-AliveExpectUpgradeIf-Modified-SinceIf-Unmodified-SinceIf-None-MatchIf-MatchRangeIf-RangeX-Ms-ViaX-Ms-Force-RefreshX-MSEdge-RefWarningForwardedViaX-Forwarded-ForX-Forwarded-ProtoX-Forwarded-HostX-Azure-RequestChainX-Azure-FDIDX-Azure-RequestChainv2X-Azure-Ref
応答ヘッダーの変更
応答ヘッダーの変更アクションを使用して、応答に存在するヘッダーをクライアントに返す前に変更します。
プロパティ
| プロパティ | サポートされている値 |
|---|---|
| 演算子 |
|
| ヘッダー名 | 変更するヘッダーの名前。 |
| ヘッダー値 | 追加または上書きする値。 |
例
この例では、クライアントに返される前の応答から、X-Powered-By という名前のヘッダーを削除します。
注
特定の Azure Front Door 予約済みヘッダーには、要求ヘッダーと応答ヘッダーを変更するアクションなど、ルール エンジン アクションを使用して変更できないものがあります。 次の予約済みヘッダーの一覧と、x-ec と x-fd のプレフィックスが付いたヘッダーは変更できません。
Accept-RangesHostConnectionContent-LengthTransfer-EncodingTELast-ModifiedKeep-AliveExpectUpgradeIf-Modified-SinceIf-Unmodified-SinceIf-None-MatchIf-MatchRangeIf-RangeX-Ms-ViaX-Ms-Force-RefreshX-MSEdge-RefWarningForwardedViaX-Forwarded-ForX-Forwarded-ProtoX-Forwarded-HostX-Azure-RequestChainX-Azure-FDIDX-Azure-RequestChainv2X-Azure-Ref
URL リダイレクト
URL リダイレクト アクションを使用して、クライアントを新しい URL にリダイレクトします。 クライアントには、フロント ドアからのリダイレクト応答が送信されます。 Azure Front Door では、{url_path:seg#} サーバー変数を使用した URL パスの動的キャプチャがサポートされ、{url_path.tolower} または {url_path.toupper} で URL パスが小文字または大文字に変換されます。 詳細については、「サーバー変数」を参照してください。
プロパティ
| プロパティ | サポートされている値 |
|---|---|
| リダイレクトの種類 | 要求元に返される応答の種類。
|
| プロトコルをリダイレクトします |
|
| 宛先ホスト | 要求のリダイレクト先のホスト名。 受信ホストを保持するには、空のままにします。 |
| 宛先のパス | リダイレクトで使用するパス。 先頭に / を含めます。 受信パスを保持するには、空のままにします。 |
| クエリ文字列 | リダイレクトで使用されるクエリ文字列。 先頭に ? を含めないでください。 受信クエリ文字列を保持するには、空のままにします。 |
| 宛先フラグメント | リダイレクトで使用するフラグメント。 受信フラグメントを保持するには、空のままにします。 |
例
この例では、フラグメントを保持しながら、要求を https://contoso.com/exampleredirection?clientIp={client_ip} にリダイレクトします。 HTTP 一時リダイレクト (307) が使用されます。
{client_ip}
client_ipを使用すると、URL 内の トークンの代わりに、クライアントの IP アドレスが使用されます。
URL 書き換え
URL 書き換えアクションを使用して、配信元に送信中の要求のパスを書き換えます。 Azure Front Door では、{url_path:seg#} サーバー変数を使用した URL パスの動的キャプチャがサポートされ、{url_path.tolower} または {url_path.toupper} で URL パスが小文字または大文字に変換されます。 詳細については、「サーバー変数」を参照してください。
プロパティ
| プロパティ | サポートされている値 |
|---|---|
| ソース パターン | 置換する URL パス内のソース パターンを定義します。 現在、ソース パターンではプレフィックスに基づく一致が使用されます。 すべての URL パスを一致させるには、ソース パターン値としてスラッシュ ( / ) を使用します。 ソース パターンでは、ルート構成で一致するパターンの後のパスのみが考慮されることに注意してください。 詳細については、ソース パターンを参照してください。 |
| 宛先 | 書き換えに使用する宛先パスを定義します。 宛先のパスは、ソース パターンを上書きします。 |
| 一致しないパスを保持する | [はい] に設定された場合、ソース パターンの後の残りのパスが新しい宛先パスに追加されます。 |
例
この例では、すべての要求をパス /redirection に書き換え、パスの残りの部分は保持しません。
重要
Azure Front Door (クラシック) では、プロファイルの作成、新しいドメインオンボード、またはマネージド証明書はサポートされておらず、2027 年 31 月 31 日 で廃止されます。 サービスの中断を回避するには、Azure Front Door Standard または Premium に移行してください。 詳細については、「Azure Front Door (クラシック) の提供終了を参照してください。
Azure Front Door (クラシック) のルール エンジンは、一致条件と関連するアクションを含む最大 25 個のルールで構成できます。 この記事では、ルールで定義できる各アクションについて詳しく説明します。
アクションでは、1 つの一致条件または一致条件のセットと一致する要求の種類に適用される動作が定義されています。 ルール エンジンの構成では、1 つのルールで最大 10 個の一致条件と 5 個のアクションを定義できます。 "ルーティングの構成をオーバーライドする" アクションは、1 つのルールで 1 つだけ使用できます。
ルール エンジンの構成では、次のアクションを使用できます。
要求ヘッダーの変更
バックエンドに送信される要求に含まれるヘッダーを変更するには、これらのアクションを使います。
必須フィールド
| アクション | HTTP ヘッダー名 | 値 |
|---|---|---|
| 追加 | このオプションが選択され、ルールが一致する場合、ヘッダー名に指定されたヘッダーが、指定された値で要求に追加されます。 ヘッダーが既に存在する場合、値は既存の値に追加されます。 | 糸 |
| 上書き | このオプションが選択され、ルールが一致する場合、ヘッダー名に指定されたヘッダーが、指定された値で要求に追加されます。 ヘッダーが既に存在する場合、指定された値によって既存の値が上書きされます。 | 糸 |
| 削除 | 一致するルールによってこのオプションが選択され、ルールで指定されたヘッダーが存在する場合、ヘッダーは要求から削除されます。 | 糸 |
応答ヘッダーの変更
クライアントに返される応答に含まれるヘッダーを変更するには、これらのアクションを使います。
必須フィールド
| アクション | HTTP ヘッダー名 | 値 |
|---|---|---|
| 追加 | このオプションが選択され、ルールが一致する場合、ヘッダー名に指定されたヘッダーが、指定された値を使用して応答に追加されます。 ヘッダーが既に存在する場合、値は既存の値に追加されます。 | 糸 |
| 上書き | このオプションが選択され、ルールが一致する場合、ヘッダー名に指定されたヘッダーが、指定された値を使用して応答に追加されます。 ヘッダーが既に存在する場合、値によって既存の値が上書きされます。 | 糸 |
| 削除 | 一致するルールによってこのオプションが選ばれ、ルールで指定されているヘッダーが存在する場合、ヘッダーは応答から削除されます。 | 糸 |
ルート構成のオーバーライド
ルートの種類: リダイレクト
クライアントを新しい URL にリダイレクトするには、これらのアクションを使います。
必須フィールド
| フィールド | 説明 |
|---|---|
| リダイレクトの種類 | リダイレクトは、ある URL から別の URL にユーザーやクライアントを送信する方法です。 リダイレクトの種類により、クライアントがリダイレクトの目的を理解するために使われる状態コードが設定されます。 次のリダイレクト状態コードを選択できます: 検出 (302)、移動 (301)、一時リダイレクト (307)、永続的なリダイレクト (308)。 |
| プロトコルをリダイレクトします | 着信要求に従ってプロトコルを維持するか、リダイレクトのために新しいプロトコルを定義します。 たとえば、HTTP から HTTPS へのリダイレクトの場合は "HTTPS" を選びます。 |
| 宛先ホスト | リダイレクトのために URL のホスト名を変更する場合はこの値を設定します。設定しない場合は受信した要求のホスト名が保持されます。 |
| 宛先のパス | 受信要求に従ってパスを保持するか、リダイレクトのために URL のパスを更新します。 |
| クエリ文字列 | 受信要求 URL の既存のクエリ文字列を置き換える場合はこの値を設定します。設定しない場合はクエリ文字列の元のセットが保持されます。 |
| 宛先フラグメント | 宛先フラグメントは URL の '#' より後の部分のことで、通常はブラウザーがページの特定のセクションに移動するために使用します。 リダイレクト URL にフラグメントを追加するには、この値を設定します。 |
ルートの種類: 転送
クライアントを新しい URL に転送するには、これらのアクションを使います。 これらのアクションには、URL 書き換えとキャッシュのためのサブアクションも含まれています。
| フィールド | 説明 |
|---|---|
| バックエンド プール | オーバーライドして要求を処理するバックエンド プールを選択します。現在 Front Door プロファイルにあるすべての構成済みバックエンド プールも表示されます。 |
| 転送プロトコル | 要求をバックエンドに転送するため、または着信要求からのプロトコルと一致させるために使用するプロトコル。 |
| URL 書き換え | バックエンドに転送するための URL 書き換え要求を作成するときに使用するパス。 |
| キャッシュ | このルーティング規則のキャッシュを有効にします。 有効にすると、Azure Front Door によって静的なコンテンツがキャッシュされます。 |
URL 書き換え
この設定を使用して、バックエンドに転送する要求を作成するときに使用するオプションのカスタム転送パスを構成します。
| フィールド | 説明 |
|---|---|
| カスタム転送パス | 要求の転送先のパスを定義します。 |
キャッシュ
これらの設定を使用して、クエリ文字列を含む要求に対してファイルをキャッシュする方法を制御します。 すべてのパラメーターまたは選択したパラメーターに基づいてコンテンツをキャッシュするかどうかも制御します。 これらの設定を使用して有効期限 (TTL) 値を上書きすると、コンテンツがキャッシュに保持される時間を制御できます。 アクションとしてキャッシュを強制するには、キャッシュ フィールドを "Enabled" に設定します。キャッシュを強制すると、次のオプションが表示されます。
| キャッシュの動作 | 説明 |
|---|---|
| [Ignore Query String](クエリ文字列を無視する) | 資産がキャッシュされると、キャッシュされた資産の有効期限が切れるまで、続くすべての要求でクエリ文字列が無視されます。 |
| [Use Query String](クエリ文字列を使用する) | クエリ文字列を含む一意の URL が指定された各要求は、独自のキャッシュがある一意の資産として扱われます。 |
| 指定したクエリ文字列を無視する | [クエリ パラメーター] 設定に一覧表示されている要求 URL クエリ文字列は、キャッシュ対象として無視されます。 |
| 指定したクエリ文字列を含める | [クエリ パラメーター] 設定に一覧表示されている要求 URL クエリ文字列は、キャッシュ対象として使用されます。 |
| その他のフィールド | 説明 |
|---|---|
| 動的な圧縮 | Front Door はエッジのコンテンツを動的に圧縮できるため、応答が小さく高速になります。 |
| クエリ パラメーター | キャッシュの基礎として使用する、許可または禁止するパラメーターのコンマ区切りのリスト。 |
| 既定のキャッシュ期間を使用する | Azure Front Door の既定のキャッシュ期間を使うように設定するか、または元の応答ディレクティブを無視するキャッシュ期間を定義します。 |
次の手順
- 最初のルール セットを構成する方法について学習します。
- 詳細について知るには、ルール セットの一致条件をご覧ください。
- Azure Front Door のルール セットの詳細を確認します