Erstellen von benutzerdefinierten Application Gateway-Fehlerseiten

Mit einem Application Gateway können Sie benutzerdefinierte Fehlerseiten erstellen, anstatt Standardfehlerseiten anzuzeigen. Sie können Ihr Branding und Layout für Fehler im Zusammenhang mit verschiedenen Antwortcodes verwenden. Einige Szenarien zur Einstellung benutzerdefinierter Fehlerseiten sind

  • Zeigt eine Wartungs- oder Statusseite für den Antwortcode „502 Ungültiges Gateway“ an. Dies ist nützlich, wenn Ihr Anwendungsgateway keinen Back-End-Server hat, um den Datenverkehr während der geplanten Wartung oder eines unvorhergesehenen Problems mit Back-End-Poolservern weiterzuleiten.
  • Zeigt eine angepasste Seite für nicht autorisierten Zugriff für „403 Verbotenen Antwortcode“ an, der auftritt, wenn sich der WAF im Präventionsmodus befindet und bösartigen Datenverkehr blockiert.
  • Zeigt eine Unternehmensseite mit Kontaktdetails im Falle eines Problems an.

Unterstützte Antwortcodes

Die benutzerdefinierten Fehlerseiten werden für die folgenden Antwortcodes unterstützt:

Antwortcode Beschreibung
400 Ungültige Anforderung (in der Vorschau)
403 Verboten
405 Methode nicht zulässig (In der Vorschau)
408 Anforderungs-Timeout (In der Vorschau)
500 Interner Serverfehler (in der Vorschau)
502 Ungültiger Gateway
503 Dienst nicht verfügbar (In der Vorschau)
504 Gateway-Timeout (In der Vorschau)

Hinweis

  • API Version 2022-09-01 oder höher sollte verwendet werden, um Fehlerseiten für die neuen Antwortcodes (in der Vorschau) zu konfigurieren.
  • Der Antwortcode 404 (Seite nicht gefunden) wird derzeit nicht unterstützt.
  • Die benutzerdefinierten Fehlerseiten werden für Antwortcodes angezeigt, die vom Application Gateway generiert werden. Wenn ein Fehler vom Back-End-Server stammt, wird er an den Client weitergegeben.

Konfigurationsebenen

Die benutzerdefinierten Fehlerseiten können auf globaler oder Listenerebene definiert werden:

  • Globale Ebene – Die auf globaler Ebene festgelegten Fehlerseiten werden auf alle Listener dieses Anwendungsgateways angewendet. Die Konfiguration über das Azure-Portal wird derzeit nicht unterstützt.
  • Listener-Ebene – Mit den Fehlerseiten auf Listener-Ebene können Sie Fehlerseiten für die von diesem Listener bereitgestellte Anwendung präzise steuern.

Hinweis

Wenn Sie eine Kombination aus Fehlerseiten auf globaler und Listener-Ebene für ein Gateway verwenden, müssen Sie die URLs für alle gewünschten Antwortcodes für diesen Listener explizit erwähnen. Eine listenerspezifische Konfiguration setzt alle vorherigen globalen Konfigurationen außer Kraft, die für diesen Listener gelten.

Anforderungen

Zum Erstellen einer benutzerdefinierten Fehlerseite sollten Sie

  • den Antwortcode kennen, für den eine benutzerdefinierte Fehlerseite erforderlich ist.
  • Den entsprechenden Remote-Speicherort (URL) für die HTML-Seite kennen. Dies muss eine öffentlich zugängliche Datei sein.
  • Stellen Sie sicher, dass die Fehlerseite öffentlich zugänglich ist und geben Sie eine 200-Antwort zurück.
  • Sicherstellen, dass die Fehlerseite im Erweiterungstyp *.htm oder *.html vorliegt.
  • Sicherstellen, dass die Seitengröße kleiner als 1 MB ist.

Sie können für diese HTML-Datei auf interne oder externe Bilder/CSS verweisen. Verwenden Sie für extern referenzierte Ressourcen absolute URLs, die öffentlich zugänglich sind. Beachten Sie die HTML-Dateigröße, wenn Sie base64-codierte Inlinebilder, JavaScript oder CSS verwenden.

Hinweis

  • Innerhalb des Azure-Ökosystems müssen Sie ein Azure Blob Storage-Konto oder einen virtuellen Computer verwenden, um eine Fehlerseite zu hosten. Beachten Sie, dass der Blob-Speicher direkt zugänglich sein sollte, da Speicherkonten, die von Azure CDN-Diensten bereitgestellt werden, derzeit nicht unterstützt werden.
  • Sie können auch die Fehlerseiten an einem beliebigen Remote-Speicherort hosten.
  • Relative Links werden nicht unterstützt.

Funktionsweise

Nachdem Sie eine Fehlerseite in der Konfiguration Ihres Anwendungsgateways angegeben haben, überprüft Ihr Gateway die Konnektivität mit der HTML-Seite über das Internet. Anschließend wird die Datei im lokalen Cache heruntergeladen.

Wenn ein Client einem Fehler gegenübersteht, gibt Ihr Anwendungsgateway einen Antwortcode und diese HTML-Seite zurück. Alle extern referenzierten Ressourcen (z. B. Bilder, JavaScript und CSS-Dateien) werden direkt vom Client abgerufen.

Ihr Anwendungsgateway überprüft nicht regelmäßig den Speicherort der Quelldatei, um eine neue Version abzurufen. Sie können jedes Konfigurationsupdate auf dem Gateway ausführen, um den Cache der Datei manuell zu aktualisieren. Ändern Sie beispielsweise die Fehler-URL von Seite 1 auf Seite 2 und dann zurück zu Seite 1 oder beim Hinzufügen eines neuen Listeners.

Portalkonfiguration

Schritte zum Konfigurieren von listenerspezifischen benutzerdefinierten Fehlerseiten:

  1. Navigieren Sie im Portal zum Application Gateway und wählen Sie die erforderliche Ressource aus.

  2. Wählen Sie Listener aus und navigieren Sie zu einem bestimmten Listener, für den Sie eine Fehlerseite angeben möchten.

  3. Geben Sie im Abschnitt Benutzerdefinierte Fehlerseiten öffentlich zugängliche URLs für die erforderlichen Statuscodes an.

  4. Wählen Sie Speichern.

    Screenshot of Application Gateway custom error page.

Azure PowerShell-Konfiguration

Sie können mithilfe von Azure PowerShell eine benutzerdefinierte Fehlerseite konfigurieren. Beispielsweise eine globale benutzerdefinierte Fehlerseite:

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

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

Set-AzApplicationGateway -ApplicationGateway $appgw

Oder eine Fehlerseite auf Listenerebene:

$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>"

Set-AzApplicationGateway -ApplicationGateway $appgw

Weitere Informationen finden Sie unter Add-AzApplicationGatewayCustomError und Add-AzApplicationGatewayHttpListenerCustomError.

Nächste Schritte

Weitere Informationen zur Application Gateway-Diagnose finden Sie unter Back-End-Integrität, Diagnoseprotokolle und Metriken für Application Gateway.