トラフィックを効果的に管理するには、Edge Security Acceleration (ESA) でルールがどのように適用されるかを理解することが不可欠です。このガイドでは、ルールの 3 つの主要原則である 実行優先度、 ルールの動作、および 構成範囲 について説明します。
実行優先度: 上から下
ルールは、ルールリストの上から下へ(序数(1、2、3 など)に基づいて)順番に処理されます。
ルール構成: リクエストはルール 1 に対してチェックされます。条件が一致しない場合は、ルール 2 に進みます。
グローバル設定: リクエストが番号付きルールのいずれにも一致しない場合は、最終的なデフォルトとして グローバル設定 が適用されます。
注文 | ルール | 条件 |
1 | ルール 1 | 条件 A(不一致) |
2 | ルール 2 | 条件 B |
3 | ルール 3 | 条件 C |
グローバル設定 | なし | |
評価順序 | ルール 1 → ルール 2 → ルール 3 → グローバル設定 | |
ルールの動作: 累積的 vs. 終了
ルールの条件が満たされると、2 つの方法のいずれかで動作します。累積機能は、ルールがそのアクションを適用することをサポートし、その後、ESA は 後続のルールを処理し続けます。これにより、1 つの要求に複数のルールを適用できます。
累積的なアクションの場合
累積的なアクションに関連するルールが適用され、その後 ESA は後続のルールを処理し続けます。これにより、1 つの要求に複数のルールを適用できます。
例: 送信リクエストヘッダーの変更
リクエストがルール 2 とルール 3 に一致する場合、両方のアクションが実行されます。
結果: オリジンに送信される最終的なリクエストには、2 つの新しいヘッダー animal: cat と fruit: apple が含まれます。
注文 | ルール | 条件 | アクション | 実行済み? |
1 | ルール 1 | 条件 A(不一致) | ヘッダー | いいえ |
2 | ルール 2 | 条件 B | ヘッダー | はい |
3 | ルール 3 | 条件 C | ヘッダー | はい |
グローバル設定 | なし | なし | はい | |
終了アクションの場合
ルールの操作が適用されると、ESA は同じタイプのそれ以上のルールの処理を停止します。最初に一致したルールのみが有効になります。
例: URL の書き換え
リクエストがルール 2 とルール 3 に一致する場合、シーケンスで最初に一致するため、ルール 2 のアクションのみが実行されます。
結果: URL パスは /animal に書き換えられ、ルール 3 は評価されません。
次数 | ルール | 条件 | アクション | 実行済み? |
1 | ルール 1 | 条件 A(不一致) | リクエスト URL のパスを | いいえ |
2 | ルール 2 | 条件 B | リクエスト URL のパスを | はい |
3 | ルール 3 | 条件 C | リクエスト URL のパスを | いいえ |
グローバル設定 | なし | なし | いいえ | |
構成の範囲: 機能レベル vs. フィールドレベル
複雑な機能の場合、1 つのルールに複数の構成フィールドが含まれる場合があります。これらのフィールドの適用方法は、機能の範囲によって異なります。
機能レベルの実行
一致するルールが見つかると、そのルール内の構成済みのすべてのフィールドが適用されます。この機能の評価はすぐに停止し、それ以上のルールは処理されません。
フィールドが構成されていない場合は、デフォルト値が使用されます。
例: SSL/TLS ルール(終了)
リクエストがルール 2 とルール 3 に一致する場合、ルール 2 のアクションのみが実行され、TLS 暗号スイートが構成されていないため、デフォルト設定が使用されます。
注文 | ルール | 条件 | SSL/TLS 暗号化 | TLS 暗号スイートとプロトコルバージョン | OCSP ステープリング | HTTP/2 | HTTP/3 (QUIC) | 実行済み? |
1 | ルール 1 | 条件 A(不一致) | 有効 | - | 無効 | 無効 | 無効 | いいえ |
2 | ルール 2 | 条件 B | 有効 | - | 無効 | 無効 | 無効 | はい |
3 | ルール 3 | 条件 C | 有効 | - | 有効 | 有効 | 有効 | いいえ |
グローバル設定 | なし | 無効 | - | 無効 | 有効 | 有効 | いいえ | |
フィールドレベルの実行
個々のフィールド(または設定)は、それを定義する最優先ルールによって個別に構成されます。
ユーザーリクエストがルールに一致し、その機能のフィールドが空の場合、ESA はそれぞれ最初の定義を探します。
例: キャッシュルール(終了)
ESA は、最初の設定(キャッシュの適格性など)の値を見つけるために、ルールリストを上から下へ処理します。この設定が構成されている最初に一致したルールの値を使用し、その特定の設定の検索を停止します。
次に、2 番目の設定(ブラウザ TTL など)についてプロセスを繰り返し、ルールリストの先頭からスキャンして、それを定義する最初に一致したルールを再度見つけます。
これは、機能のすべての設定が決定されるまで続きます。
次数 | ルール | 条件 | キャッシュの適格性 | ブラウザ TTL | エッジ TTL | カスタム CacheKey | ポートキャッシュ | 期限切れのレスポンスのキャッシュ | キャッシュの永続性 |
1 | ルール 1 | 条件 A(不一致) | 適格 | - | オリジン TTL(存在する場合)を尊重します。それ以外の場合は、キャッシュしません。 | - | - | 無効 | - |
2 | ルール 2 | 条件 B | 適格 | - | オリジン TTL(存在する場合)を尊重します。それ以外の場合は、キャッシュしません。 | - | - | 無効 | - |
3 | ルール 3 | 条件 C | キャッシュをバイパス | キャッシュしない | - | - | - | - | - |
4 | ルール 4 | 条件 D | 適格 | - | オリジン TTL を無視し、カスタムキャッシュ TTL である 1 時間を使用する | クエリ文字列を無視する | - | 無効 | - |
5 | ルール 5 | 条件 E | 適格 | - | - | - | - | 無効 | - |
グローバル設定 | なし | - | - | - | - | デフォルトで無効 | - | デフォルトで無効 | |
結果 | 適格 | キャッシュしない | オリジン TTL(存在する場合)を尊重します。それ以外の場合は、キャッシュしません。 | クエリ文字列を無視する | 無効 | 無効 | 無効 | ||
概要: 機能別のルールの動作
カテゴリ | 機能 | 動作 | 範囲 | 優先度 |
SSL/TLS | 終了 | 機能レベル | 高い序数 = 低い優先度 | |
終了 | フィールドレベル | |||
変換ルール | 終了 | 機能レベル | ||
累積的 | フィールドレベル | |||
累積的 | フィールドレベル | |||
リダイレクト | 終了 | 機能レベル | ||
キャッシュ | 終了 | フィールドレベル | ||
コンテンツの最適化 | 終了 | フィールドレベル | ||
終了 | フィールドレベル | |||
終了 | フィールドレベル | |||
ネットワークの最適化 | 終了 | フィールドレベル | ||
オリジンフェッチ | 終了 | フィールドレベル | ||
構成管理 | 終了 | 機能レベル | ||
トラフィック | 終了 | 機能レベル | ||
終了 | 機能レベル | 高い序数 = 低い優先度。 終了 アクションが設定されているかどうかを確認してください。
| ||
セキュリティ | 終了 | 機能レベル | 高い序数 = 低い優先度 | |
終了 | 機能レベル | |||
終了 | 機能レベル | |||
終了 | 機能レベル | |||
終了 | 機能レベル | |||
終了 | 機能レベル | |||
終了 | 機能レベル |