Application Gateway のカスタム エラー ページを作成する

Application Gateway では、既定のエラー ページを表示する代わりに、カスタム エラー ページを作成することができます。 カスタム エラー ページでは、独自のブランディングとレイアウトを使用することができます。

たとえば、Web アプリが到達可能でない場合は、独自のメンテナンス ページを定義できます。 また、悪意のある要求が Web アプリに送信される場合は、未承認のアクセス ページを作成することができます。

次の 2 つのシナリオのカスタム エラー ページがサポートされています。

  • メンテナンス ページ - 502 無効なゲートウェイ ページの代わりに、このカスタム エラー ページを送信します。 これは、Application Gateway にトラフィックをルーティングするバックエンドがないときに表示されます。 たとえば、予定メンテナンスがある場合、または予期しない問題がバックエンド プール アクセスに影響する場合です。
  • 未承認のアクセス ページ - 403 未承認のアクセス ページの代わりに、このカスタム エラー ページを送信します。 これは、Application Gateway WAF が悪意のあるトラフィックを検出し、そのトラフィックをブロックするときに表示されます。

エラーがバックエンド プールのバックエンド ターゲットから発生している場合、エラーは変更されない状態で呼び出し元に返されます。 カスタム エラー ページは、要求がバックエンドに到達できない場合、または WAF が防止モードで要求がブロックされている場合にのみ表示されます。

グローバル レベルとリスナー レベルで、カスタム エラー ページを定義できます。

  • グローバル レベル - エラー ページは、その Application Gateway に展開されているすべての Web アプリのトラフィックに適用されます。
  • リスナー レベル - エラー ページは、そのリスナーで受信されるトラフィックに適用されます。
  • 両方 - リスナー レベルで定義されているカスタム エラー ページは、グローバル レベルで設定されているページよりも優先されます。

カスタム エラー ページを作成するには、以下が必要です。

  • HTTP 応答状態コード。
  • エラー ページの対応する保存先。
  • エラー ページはインターネットにアクセス可能であり、200 件の応答を返す必要があります。
  • エラー ページは拡張子が *.htm または *.html である必要があります。
  • エラー ページ サイズは 1 MB 未満である必要があります。
  • エラー ページは Azure BLOB ストレージでホストされている必要があります

この HTML ファイルには、内部または外部のイメージ/CSS を参照できます。 外部から参照されるリソースには、パブリック アクセスできる絶対 URL を使用します。 Base64 でエンコードされたインライン イメージ、Javascript、または CSS を使用している場合は、HTML ファイルのサイズに注意してください。

注意

同じ場所に配置されたファイルへの相対リンクはサポートされていません。

エラー ページを指定すると、アプリケーション ゲートウェイによってファイルへのインターネット接続が確認され、ファイルはローカル アプリケーション ゲートウェイ キャッシュに保存されます。 HTML ページはアプリケーション ゲートウェイによって提供されますが、外部から参照されるリソース (イメージ、Javascript、CSS ファイルなど) はクライアントによって直接フェッチされます。 既存のカスタム エラー ページを変更するには、Application Gateway 構成内の別の BLOB の場所を指すようにする必要があります。 アプリケーション ゲートウェイでは、BLOB の場所を定期的にチェックして新しいバージョンをフェッチすることはありません。

ポータル構成

  1. ポータルの Application Gateway に移動し、Application Gateway を選択します。

  2. [リスナー] を選択して、エラー ページを指定する特定のリスナーに移動します。

  3. リスナー レベルで 403 WAF エラー用のカスタム エラー ページまたは 502 メンテナンス ページを構成します。

    注意

    Azure portal からのグローバル レベル カスタム エラー ページの作成は、現在サポートされていません。

  4. [エラー ページの url] で、[はい] を選択し、特定のエラー状態コードに対してパブリックにアクセス可能な BLOB の URL を構成します。 [保存] を選択します。 これで、カスタム エラー ページで Application Gateway が構成されます。

    Application Gateway のカスタム エラー ページのスクリーンショット。

Azure PowerShell 構成

Azure PowerShell を使用して、カスタム エラー ページを構成できます。 たとえば、グローバル カスタム エラー ページは次のようになります。

$appgw   = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>

$updatedgateway = Add-AzApplicationGatewayCustomError -ApplicationGateway $appgw -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"

また、リスナー レベルのエラー ページは次のようになります。

$appgw   = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>

$listener01 = Get-AzApplicationGatewayHttpListener -Name <listener-name> -ApplicationGateway $appgw

$updatedlistener = Add-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"

詳しくは、「Add-AzApplicationGatewayCustomError」および「Add-AzApplicationGatewayHttpListenerCustomError」をご覧ください。

次のステップ

Application Gateway 診断の詳細については、「Application Gateway のバックエンドの正常性、診断ログ、およびメトリック」を参照してください。