カスタムレスポンスコードルールを使用すると、Edge Security Accelerator (ESA) は、リクエストをオリジンサーバーに転送せず、エッジで直接特定の HTTP ステータスコードとオプションのレスポンスページを返します。
ユースケース
一部のリクエストは、オリジンサーバーに到達させるべきではありません。統一されたブロック通知、メンテナンスページ、または一時的なリダイレクトはすべて、エッジから直接提供できます。このようなリクエストをオリジンに転送すると、レイテンシーが増加し、オリジンの負荷が高まります。カスタムレスポンスコードルールを使用すると、ESA はエッジで指定された HTTP ステータスコードとレスポンスページを返すことができるため、ラウンドトリップが不要になります。
典型的なシナリオは次のとおりです。
フレンドリーなエラーページ:404 や 500 などのステータスコードを、ユーザーフレンドリーなエラーメッセージを表示するカスタムページに置き換えます。
メンテナンスウィンドウ:定期メンテナンス中に、特定のパスに対して 503 ステータスコードとメンテナンスページを返します。
悪意のあるリクエストのブロック:攻撃シグネチャに一致した場合、403 ステータスコードと通知ページを返します。
カスタムレスポンスコードルールを使用する場面
カスタムレスポンスコードルールは、固定のレスポンスコードとオプションのページをエッジで直接返したい場合に使用します。要件が異なる場合は、適切な ESA の機能を使用してください。
要件 | 推奨される機能 |
固定の HTTP ステータスコードとオプションのレスポンスページを返す。 | カスタムレスポンスコードルール (この機能)。 |
リクエストパス、パラメーター、またはレスポンスボディをリライトする。 | リライトルール。 |
セキュリティ検出に基づいてリクエストをブロックまたはチャレンジする。 | WAF ルールとカスタム保護ルール。 |
動的なエッジロジックまたは複雑な条件分岐を実装する。 | エッジ関数。 |
前提条件
開始する前に、次のものが揃っていることを確認してください。
ESA に追加され、配信されているドメイン名
(オプション) ステータスコードとともにページコンテンツを返す場合に使用する、カスタムレスポンスページ。最初にページを作成しておくと、どのルールからでも参照できます。
カスタムレスポンスコードルールの作成
変換ルール ページで、カスタムレスポンスコード タブを選択し、ルール追加 をクリックします。
カスタムレスポンスコードの作成 ダイアログボックスで、次の設定を行い、OK をクリックします。
[ルール名]:ルールのカスタム名。例:
my-rule。[リクエストタイプ]:リクエストの 一致条件 を定義します。例:
Hostname equals www.example.com。または、式を直接編集することもできます。例:
(http.host eq "www.example.com")。[カスタムレスポンスコード]:
[レスポンスコード]:返す HTTP ステータスコード。有効な値:200~599。
[レスポンスページ]:既存のカスタムページ から選択します。デフォルトは 応答なしページ で、ページ本文なしでステータスコードのみを返します。
ルールの検証
curl -I https://<your-domain>/<matching-path>またはブラウザを使用して、ルールに一致するリクエストを送信します。返された HTTP ステータスコードが設定と一致することを確認します。レスポンスページを設定した場合は、ブラウザにそのカスタムページの内容が表示されます。
カスタムレスポンスコードルールの管理
ルールリストから、既存のルールに対して次の操作を実行できます。
検索:リストの上部にある検索ボックスにルール名を入力して、名前で絞り込みます。
順序変更:ルールをドラッグして位置を変更します。ルールはリストの上から下の順に評価されます。
有効化/無効化:ルールのステータスを切り替えます。無効化されたルールは適用されなくなりますが、その設定は保持されます。
編集:ルール名、一致条件、レスポンスコード、またはレスポンスページを変更します。
削除:不要になったルールを削除します。削除は元に戻せないため、注意して実行してください。
使用上の注意
ルールはリストの上から下の順に評価されます。リクエストに一致した最初のルールがレスポンスを返し、それ以降のルールは評価されません。ルールの順序には注意してください。
有効なステータスコードの値は 200 から 599 の範囲で、すべての有効な HTTP ステータスコードをカバーします。ユースケースに合ったコードを選択してください。
カスタムレスポンスコードルールは、リライトルールやセキュリティルールとは独立しており、3 種類のルールはそれぞれ個別に適用されます。
ルールの追加、編集、削除は、エッジノード上でリアルタイムに反映されます。手動での更新は不要です。
トラブルシューティング
ルールが適用されない場合は、次の点を確認してください。
ルールが有効になっていることを確認してください。
ルールの順序を確認してください。複数のルールがある場合、リストの上位にあるルールが先に照合されます。
リクエストがルールに一致するように、一致条件が実際のリクエストのパス、メソッド、ソース、その他関連する属性をカバーしていることを確認してください。