Freigeben über


Wie Anforderungen mit einer Routenkonfiguration abgeglichen werden

Eine Route in Azure Front Door definiert, wie der Datenverkehr verarbeitet wird, wenn die eingehende Anforderung im Azure Front Door-Edge eintrifft. Über die Routeneinstellungen wird eine Zuordnung zwischen einer Domäne und einer Ursprungsgruppe definiert. Durch die Verwendung von erweiterten Funktionen wie Muster für Abgleich und Regelsatz können Sie den Datenverkehr zu Ihren Back-End-Ressourcen präzise steuern.

Hinweis

Bei Verwendung der Front Door-Regelsätze können Sie eine Regel konfigurieren, um für eine Anforderung die Ursprungsgruppe außer Kraft zu setzen. Die vom Regelsatz festgelegte Ursprungsgruppe setzt den in diesem Artikel beschriebenen Routingprozess außer Kraft.

Wichtig

Azure Front Door (klassisch) wird am 31. März 2027 eingestellt. Um Dienstunterbrechungen zu vermeiden, ist es wichtig, dass Sie Ihre (klassischen) Azure Front Door-Profile bis März 2027 zur Dienstebene Azure Front Door Standard oder Premium migrieren. Weitere Informationen finden Sie unter Einstellung von Azure Front Door (klassisch).

Wenn eine Anforderung an Azure Front Door-Edge (klassisch) eingeht, ist eine der ersten Schritte, die Front Door ausführt, die Weiterleitung der übereinstimmenden Anforderung an eine Back-End-Ressource und anschließendes Ausführen einer definierten Aktion in der Routingkonfiguration. Der folgende Artikel erläutert, wie Front Door bestimmt, welche Routenkonfiguration beim Verarbeiten einer Anforderung verwendet werden soll.

Struktur einer Front Door-Routenkonfiguration

Die Front Door-Routingregel besteht aus zwei Hauptteilen: der „linken Seite“ und der „rechten Seite“. Front Door gleicht die eingehende Anforderung mit der linken Seite der Route ab, während die rechte Seite definiert, wie die Anforderung verarbeitet wird.

Abgleich der eingehenden Anforderung (linke Seite)

Die folgenden Eigenschaften bestimmen, ob die eingehende Anforderung mit der Routingregel (also der linken Seite) übereinstimmt:

  • HTTP-Protokolle – HTTP oder HTTPS
  • Domäne – z. B.: www.foo.com, *.bar.com
  • Pfade – z. B.: /*, /users/*, /file.gif

Diese Eigenschaften werden intern erweitert, sodass jede Kombination aus Protokoll/Domäne/Pfad ein potenzieller Treffer ist.

Routingentscheidung (rechte Seite)

Die Entscheidung darüber, wie die Anforderung verarbeitet werden soll, richtet sich danach, ob für die Route Zwischenspeichern aktiviert ist. Wenn keine zwischengespeicherte Antwort verfügbar ist, wird die Anforderung an den entsprechenden Ursprung weitergeleitet.

Routenabgleich

In diesem Abschnitt wird erläutert, wie Front Door den Abgleich mit einer Routingregel durchführt. Das grundlegende Konzept besteht darin, dass Front Door immer die genaueste Anforderung verwendet, wobei nur die „linke Seite“ betrachtet wird. Front Door führt zuerst einen Abgleich mit dem Protokoll, damit mit der Domäne und zuletzt mit dem Pfad durch.

Abgleich mit Front-End-Hosts

Azure Front Door verwendet die folgende Logik, um Front-End-Hosts abzugleichen:

  1. Ermitteln, ob Routen mit einer exakten Übereinstimmung auf dem Front-End-Host vorhanden sind.
  2. Wenn keine genaue Übereinstimmung der Front-End-Hosts vorhanden ist, wird die Anforderung abgelehnt, und der Fehler 400: Ungültige Anforderung wird gesendet.

Die folgenden Tabellen zeigen drei verschiedene Routingregeln mit Front-End-Host und Pfaden:

Routingregel Front-End-Hosts `Path`
Ein foo.contoso.com /*
B foo.contoso.com /users/*
C www.fabrikam.com, foo.adventure-works.com /*, /images/*

In der folgenden Tabelle sind die übereinstimmenden Ergebnisse für die oben genannten Routingregeln aufgeführt:

Front-End-Host für eingehende Anforderungen Abgeglichene Routingregel(n)
foo.contoso.com A, B
www.fabrikam.com C
images.fabrikam.com Fehler 400: Ungültige Anforderung
foo.adventure-works.com C
contoso.com Fehler 400: Ungültige Anforderung
www.adventure-works.com Fehler 400: Ungültige Anforderung
www.northwindtraders.com Fehler 400: Ungültige Anforderung

Pfadabgleich

Nach dem Ermitteln des Front-End-Hosts durch Front Door und dem Filtern möglicher Routingregeln wählt Front Door die Routingregeln basierend auf dem Anforderungspfad aus. Eine ähnliche Logik wie bei Front-End-Hosts wird verwendet, um den Anforderungspfad abzugleichen:

  1. Ermitteln, ob Routingregeln mit einer genauen Übereinstimmung mit dem Anforderungspfad vorhanden sind.
  2. Wenn kein exakter übereinstimmender Pfad vorhanden ist, sucht Front Door nach einer Routingregel mit einem entsprechenden Platzhalterpfad.
  3. Wenn keine Routingregeln mit einem übereinstimmenden Pfad gefunden werden, wird die Anforderung abgelehnt, und der Fehler 400: Ungültige Anforderung wird gesendet.

Hinweis

Das Platzhalterzeichen * ist nur für Pfade gültig, bei denen dahinter keine weiteren Zeichen stehen. Darüber hinaus muss dem Platzhalterzeichen * ein Schrägstrich (/) vorangestellt werden. Pfade ohne Platzhalter gelten als exakte Treffer für den Pfad. Ein Pfad, der auf einen Schrägstrich (/) endet, ist ebenfalls ein exakter Pfad. Stellen Sie sicher, dass Ihre Pfade diese Regeln einhalten, um Fehler zu vermeiden.

Hinweis

  • Alle Pfade ohne Platzhalter gelten als exakte Treffer für den Pfad. Wenn ein Pfad mit / endet, wird dies als genaue Übereinstimmung betrachtet.
  • Bei Pfaden für abzugleichende Muster wird die Groß-/Kleinschreibung nicht beachtet. Dies bedeutet, dass Pfade mit unterschiedlichen Schreibweise als Duplikate behandelt werden. Beispielsweise verfügen Sie bei den Pfaden /FOO und /foo über den gleichen Host, der das gleiche Protokoll verwendet. Diese Pfade werden als Duplikate betrachtet, was in der Einstellung „Abzugleichende Muster“ nicht zulässig ist.

Die folgende Tabelle enthält eine Liste der Routingregeln, eine Kombination aus Front-End-Host und Pfad:

Routingregel Front-End-Host `Path`
Ein www.contoso.com /
B www.contoso.com /*
C www.contoso.com /ab
D www.contoso.com /abc
E www.contoso.com /abc/
F www.contoso.com /abc/*
G www.contoso.com /abc/def
H www.contoso.com /path/

Die folgende Tabelle zeigt, mit welcher Routingregel die eingehende Anforderung abgeglichen wird, wenn sie am Front Door-Edge eintrifft:

Eingehende Anforderung Übereinstimmende Route
www.contoso.com/ A
www.contoso.com/a B
www.contoso.com/ab C
www.contoso.com/abc D
www.contoso.com/abzzz B
www.contoso.com/abc/ E
www.contoso.com/abc/d F
www.contoso.com/abc/def G
www.contoso.com/abc/defzzz F
www.contoso.com/abc/def/ghi F
www.contoso.com/path B
www.contoso.com/path/ H
www.contoso.com/path/zzz B

Warnung

Wenn keine Routingregeln für einen exakt übereinstimmenden Front-End-Host mit einem Routingpfad zur Abdeckung aller Fälle (/*) vorhanden sind, gibt es für keine Routingregel einen Treffer.

Beispielkonfiguration:

Route Host `Path`
Ein profile.contoso.com /api/*

Treffertabelle:

Eingehende Anforderung Übereinstimmende Route
profile.domain.com/other Keine. Fehler 400: Ungültige Anforderung

Routingentscheidung

Nachdem Front Door eine einzelne übereinstimmende Routingregel ermittelt hat, muss bestimmt werden, wie die Anforderung verarbeitet werden soll. Wenn Azure Front Door für die übereinstimmende Routingregel über eine zwischengespeicherte Antwort verfügt, wird die Anforderung an den Client gesendet.

Zuletzt wertet Azure Front Door aus, ob Sie einen Regelsatz für die übereinstimmende Routingregel konfiguriert haben. Wenn kein Regelsatz definiert ist, wird die Anforderung unverändert an die Ursprungsgruppe weitergeleitet. Andernfalls werden die Regelsätze in der konfigurierten Reihenfolge verarbeitet. Regelsätze können die Route außer Kraft setzen und so Datenverkehr zu einer bestimmten Ursprungsgruppe erzwingen.

Wenn Front Door (klassisch) keine zwischengespeicherte Antwort für die übereinstimmende Routingregel aufweist, wertet es aus, ob URL-Rewrite für die übereinstimmende Routingregel konfiguriert wurde. Wenn kein benutzerdefinierter Weiterleitungspfad definiert wurde, wird die Anforderung unverändert an das entsprechende Back-End im konfigurierten Back-End-Pool weitergeleitet. Wenn ein benutzerdefinierter Weiterleitungspfad definiert wurde, wird der Anforderungspfad gemäß dem definierten benutzerdefinierten Weiterleitungspfad aktualisiert und dann an das Back-End weitergeleitet.

Nächste Schritte