Übersicht über benutzerdefinierte Fehlerantworten

Mit globalen externen Application Load Balancern können Sie Ihre eigenen Fehlerantworten anpassen, wenn ein HTTP-Fehlerstatuscode (4xx und 5xx) generiert wird. Sie können Fehlerantworten für Fehler anpassen, die sowohl vom Load Balancer als auch von den Backend-Instanzen generiert wurden. Sie können auch Fehlerantworten für Fehlerantwortcodes anpassen, die generiert werden, wenn der Traffic von Google Cloud Armor abgelehnt wird.

Hier sehen Sie ein Beispiel für eine benutzerdefinierte Fehlerseite, auf der Sie Fehlerantworten für Ihre nach außen gerichtete Anwendung für private Nutzer mit Ihrem eigenen Unternehmensbranding und -logo, Links zu verwandten Seiten und benutzerdefinierter Benachrichtigung konfigurieren können.

Benutzerdefinierte HTTP-Fehlerantwortseite
Benutzerdefinierte HTTP-Fehlerantwortseite

Mithilfe einer benutzerdefinierten Fehlerantwortrichtlinie können Sie unterschiedliche Fehlerantworten für verschiedene HTTP-Fehlerstatuscodes, URL-Domains, URL-Pfade sowie HTTP-Anfrageheader- und -Parameterfelder konfigurieren.

Mit benutzerdefinierten Fehlerantworten können Sie die Nutzerfreundlichkeit verbessern. Dies bietet folgende Vorteile:

  • Bietet ein einheitliches Branding
  • Liefert kontextbezogene und relevante Informationen, um die Nutzerfreundlichkeit und die Nutzererfahrung zu verbessern
  • Verminderung negativer Auswirkungen von Ausfallzeiten und clientseitigen Fehlern
  • Verbessert die Netzwerksicherheit

Wenn Sie keine benutzerdefinierte Fehlerantwortrichtlinie konfigurieren, wird ein allgemeines Fehlerobjekt ohne Markenbezug angezeigt, wie in Abbildung 2 dargestellt.

Allgemeine HTTP-Fehlerantwortseite.
Allgemeine HTTP-Fehlerantwortseite

Anwendungsfälle

Die Funktion für benutzerdefinierte Fehlerantworten ist für viele Anwendungsfälle vorgesehen. Dieser Abschnitt enthält einige allgemeine Beispiele.

Eigene Wartungsseite definieren

Wenn Ihre Backends fehlerhaft sind oder sich im Wartungsmodus befinden, können Sie eine Fehlerseite mit dem Branding und Informationen des Unternehmens zurückgeben. Sie können kontextbezogene Fehlerseiten erstellen, die hilfreiche Informationen wie Telefonnummern von Callcentern oder Informationen darüber enthalten, wann Nutzer noch einmal auf die Website zugreifen sollten. Sie haben die Möglichkeit, Fehlerseiten basierend auf der Übereinstimmung von Fehlerbedingungen wie Hostname und HTTP-Fehlercode anzupassen.

Eigene Standardfehlerseite definieren

Sie können benutzerdefinierte Fehlerantworten nach bestimmten Fehlercodes einrichten. Sie können beispielsweise eine Fehlerseite mit der Meldung „Anmelden oder registrieren“ für den HTTP-Antwortcode 401 (Unauthorized) einrichten. Sie können auch eine Standardfehlerseite einrichten, die Unternehmens-Branding und andere relevante Informationen für alle anderen HTTP-Fehlercodes der 4xx- und 5xx-Serie enthält.

Fehlerantworten für Sicherheitsregeln definieren

Sie können eine benutzerdefinierte Fehlerseite für Fehlerantwortcodes zurückgeben, die generiert werden, wenn der Traffic von Google Cloud Armor-Sicherheitsrichtlinien abgelehnt wird. Achten Sie darauf, dass Sie die Fehlerseite mit demselben HTTP-Fehlercode der 4xx- oder 5xx-Serie konfigurieren, den Sie in der Google Cloud Armor-Sicherheitsregel eingegeben haben.

Auswirkungen von Ausfallzeiten minimieren

Gegebenenfalls können Sie eine Fehlerantwort konfigurieren, um den HTTP-Statuscode 200 (OK) zurückzugeben und eine statische Webseite bereitzustellen, damit Nutzer während der Ausfallzeit kontextbezogene und hilfreiche Informationen anstelle einer Fehlerseite sehen.

Fehlerantworten basierend auf dem Clientanfragetyp anpassen

Sie können eine Fehlerantwort anhand von HTTP-Anfrageheadern und -Parametern anpassen, z. B. dem Header Content-Type. Beim Weiterleiten der ursprünglichen Anfrage an den Fehlerdienst kann das Routing den Content-Type-Header berücksichtigen, um entweder eine Webseite (für Anfragen von Browsern) oder JSON (für Anfragen von einer Web API) einzubeziehen.

Funktionsweise von benutzerdefinierten Richtlinien für Fehlerantworten

Eine benutzerdefinierte Fehlerantwortrichtlinie kann auf drei Ebenen der URL-Zuordnungsressource definiert werden: der Load Balancer-Ebene, der URL-Domainebene und der URL-Pfadebene.

  • Load Balancer-Ebene. Die Richtlinie wird auf den gesamten vom Load Balancer empfangenen Traffic angewendet.

  • URL-Domain-Ebene: Die Richtlinie wird auf Traffic angewendet, der an einen bestimmten Domainnamen oder Hostnamen weitergeleitet wird, z. B. www.example.com.

  • URL-Pfadebene. Die Richtlinie wird auf Traffic angewendet, der an einen bestimmten Pfad weitergeleitet wird, z. B. www.example.com/images/*. Auf dieser Ebene können Sie auch erweiterte Übereinstimmungsbedingungen mit HTTP-Anfrageheadern und -parametern verwenden, z. B. Content-Type:application/json.

Die folgende Tabelle zeigt eine benutzerdefinierte Fehlerantwortrichtlinie, die auf die Ebene des Load Balancers, die URL-Domainebene und die URL-Pfadebene der URL-Zuordnung angewendet wird.

Richtlinienebene API-Feld
Load-Balancer urlMaps.defaultCustomErrorResponsePolicy
URL-Domain pathMatchers[].defaultCustomErrorResponsePolicy
URL-Pfad

pathMatchers[].pathRules[].customErrorResponsePolicy

pathMatchers[].routeRules[].customErrorResponsePolicy

Wenn Sie eine benutzerdefinierte Fehlerantwortrichtlinie auf mehreren Ebenen der URL-Zuordnungsressource konfigurieren, wird das Fehlerobjekt zurückgegeben, das von der benutzerdefinierten Fehlerrichtlinie auf der untersten Ebene der URL-Zuordnung angegeben wird. Fehlerantwortrichtlinien, die auf einer niedrigeren Ebene der URL-Zuordnung definiert sind, sind spezifischer und haben Vorrang vor Fehlerantwortrichtlinien, die auf einer höheren Ebene der URL-Zuordnung definiert sind.

Beispielsweise wird eine benutzerdefinierte Fehlerantwortrichtlinie auf Ebene des Load Balancers nur angewendet, wenn die Richtlinie den Fehlerbedingungen entspricht und für den Fehlercode auf den niedrigeren Ebenen keine entsprechende Richtlinie definiert wurde: die URL-Domain oder URL-Pfad Ebenso wird eine benutzerdefinierte Fehlerantwortrichtlinie auf URL-Domainebene nur angewendet, wenn die Richtlinie den Fehlerbedingungen entspricht und für den Fehlercode auf der niedrigeren Ebene, dem URL-Pfad, keine entsprechende Richtlinie definiert wurde. Weitere Informationen zu dieser Konfiguration finden Sie unter Detaillierte benutzerdefinierte Fehlerantwortrichtlinien für verschiedene Domains, Pfade und Fehlerantwortcodes konfigurieren.

Mehrere Fehlerantwortregeln angeben, die mit HTTP-Fehlerantwortcodes übereinstimmen

Auf jeder Ebene innerhalb einer benutzerdefinierten Fehlerantwortrichtlinie können Sie mehrere Fehlerantwortregeln angeben. Diese Regeln können eine HTTP-Fehlerantwort mit bestimmten Fehlercodes oder einer Reihe von Fehlercodes abgleichen. Wenn Sie eine Regel für einen Bereich von Fehlercodes und Regeln für bestimmte Fehlercodes angeben, haben Regeln mit spezifischen Fehlercodes Vorrang.

Angenommen, Sie konfigurieren eine Regel für den Fehlercode 401 (Unauthorized) und eine weitere Regel für alle Fehlercodes der Serie 4xx. Wenn der Backend-Dienst den Fehlercode 401 zurückgibt, wird die Regel angewendet, die dem Fehler 401 entspricht. Wenn der Backend-Dienst jedoch den Fehlercode 403 zurückgibt, wird die Regel für Fehler vom Typ 4xx wirksam.

HTTP-Antwortcode überschreiben

Mit den Fehlerantwortregeln können Sie den vom Load Balancer zurückgegebenen HTTP-Antwortcode ändern. Das bedeutet im Wesentlichen, dass Sie den vom Server generierten Antwortcode überschreiben und den endgültigen Antwortcode für die Anfrage definieren können. Sie können festlegen, dass ein beliebiger HTTP-Antwortcode zurückgegeben wird, einschließlich 200 (OK), der Serie 4xx oder der Serie 5xx oder eines anderen dreistelligen Antwortcodes. Weitere Informationen zum Überschreiben des Antwortcodes finden Sie unter Fehlerseite für einen bestimmten Fehlercode für einen bestimmten Host konfigurieren.

Beschränkungen

  • Dieses Feature wird nur mit dem globalen externen Application Load Balancer unterstützt. Der regionale und der klassische Modus werden nicht unterstützt.

  • Wenn das benutzerdefinierte Fehlerobjekt nicht aus dem Fehlerdienst abgerufen werden kann, z. B. weil der Inhaltspfad falsch konfiguriert ist, wird ein allgemeines Fehlerobjekt ohne Markenbezug angezeigt.

  • Die benutzerdefinierte Fehlerantwortrichtlinie überwacht oder filtert das vom Fehlerdienst zurückgegebene Objekt nicht auf Sicherheitsrisiken. Daher sollten Sie sorgfältig darauf achten, Sicherheitslücken zu beseitigen und die Auswirkungen einer potenziellen Gefährdung zu begrenzen.

  • Lesen Sie die allgemeinen Best Practices für Cloud Storage, um Fehlkonfigurationen bei der Verwendung eines Cloud Storage-Buckets zu vermeiden.

Preise

Für die Verwendung benutzerdefinierter Fehlerantworten fallen keine zusätzlichen Kosten an. Es gelten die Standardpreise für Google Cloud Load Balancing. Weitere Informationen finden Sie unter Preise.

Nächste Schritte