Wie Anforderungen mit einer Routenkonfiguration abgeglichen werden
Eine Route in Azure Front Door definiert, wie der Datenverkehr verarbeitet wird, wenn eine eingehende Anforderung am Azure Front Door-Edge eingeht. Die Routeneinstellungen richten eine Zuordnung zwischen einer Domäne und einer Ursprungsgruppe ein. 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 Azure Front Door Standard- oder Premium-Stufe migrieren. Weitere Informationen finden Sie unter Einstellung von Azure Front Door (klassisch).
Wenn eine Anforderung am Azure Front Door-Edge (klassisch) eingeht, besteht einer der ersten Schritte darin, zu bestimmen, wie die übereinstimmende Anforderung an eine Back-End-Ressource weitergeleitet, und dann eine definierte Aktion in der Routingkonfiguration ausgeführt wird. Dieses Dokument 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 (linke 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 Anforderungen mit Routingregeln abgleicht. Das Grundprinzip besteht darin, dass Front Door immer mit der spezifischsten Anforderung übereinstimmt, indem die Eigenschaften der „linken Seite“ ausgewertet werden: Protokoll, Domäne und Pfad in dieser Reihenfolge.
Abgleich mit Front-End-Hosts
Azure Front Door verwendet die folgenden Schritte, um Front-End-Hosts abzugleichen:
- Suchen Sie nach Routen mit einer genauen Übereinstimmung auf dem Front-End-Host.
- Wenn keine genaue Übereinstimmung gefunden wird, wird die Anforderung mit dem Fehler „404: Ungültige Anforderung“ abgelehnt.
Die folgenden Tabellen veranschaulichen drei verschiedene Routingregeln mit ihren Frontend-Hosts 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/* |
Die folgende Tabelle zeigt die übereinstimmenden Ergebnisse für die Routingregeln in der vorherigen Tabelle:
Front-End-Host für eingehende Anforderungen | Abgeglichene Routingregeln |
---|---|
foo.contoso.com | A, B |
www.fabrikam.com | C |
images.fabrikam.com | Fehler 404 – Ungültige Anforderung |
foo.adventure-works.com | C |
contoso.com | Fehler 404 – Ungültige Anforderung |
www.adventure-works.com | Fehler 404 – Ungültige Anforderung |
www.northwindtraders.com | Fehler 404 – Ungültige Anforderung |
Pfadabgleich
Nachdem Azure Front Door den spezifischen Front-End-Host ermittelt und mögliche Routingregeln gefiltert hat, werden die Routingregeln basierend auf dem Anforderungspfad ausgewählt. Die folgende Logik wird verwendet:
- Überprüfen Sie, ob Routingregeln mit einer genauen Übereinstimmung mit dem Anforderungspfad übereinstimmen.
- Wenn keine genaue Übereinstimmung gefunden wird, suchen Sie nach einer Routingregel mit einem übereinstimmenden Wildcardpfad.
- Wenn kein übereinstimmender Pfad gefunden wird, wird die Anforderung mit dem Fehler „404: Ungültige Anforderung“ abgelehnt.
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
- Pfade ohne Platzhalter gelten als exakte Treffer für den Pfad. Ein Pfad, der mit einer
/
endet, ist auch eine genaue Übereinstimmung. - Bei Pfadmustern wird die Groß-/Kleinschreibung nicht beachtet. Beispielsweise werden
/FOO
und/foo
als Duplikate behandelt und sind in der Einstellung „Muster“ nicht zulässig.
In der folgenden Tabelle sind Routingregeln mit ihren Kombinationen aus Front-End-Host und Pfaden aufgeführt:
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, welche Routingregel mit einer eingehenden Anforderung am Azure Front Door-Edge übereinstimmt:
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 ohne Routingpfad zur Abdeckung aller Fälle (/*) vorhanden sind, wird keine passende Routingregel ermittelt.
Beispielkonfiguration:
Route | Host | `Path` |
---|---|---|
Ein | profile.contoso.com | /api/* |
Treffertabelle:
Eingehende Anforderung | Übereinstimmende Route |
---|---|
profile.domain.com/other | Keine. Fehler 404 – Ungültige Anforderung |
Routingentscheidung
Sobald Azure Front Door einer Routingregel entspricht, entscheidet sie, wie die Anforderung verarbeitet werden soll. Wenn eine zwischengespeicherte Antwort verfügbar ist, wird sie an den Client zurückgesendet.
Wenn ein Regelsatz für die übereinstimmende Routingregel konfiguriert ist, wird sie in der Reihenfolge verarbeitet. Regelsätze können die Route außer Kraft setzen und so Datenverkehr zu einer bestimmten Ursprungsgruppe verweisen. Wenn kein Regelsatz definiert ist, wird die Anforderung ohne Änderungen an die Ursprungsgruppe weitergeleitet.
Wenn Azure Front Door (klassisch) keine zwischengespeicherte Antwort hat, sucht es nach einer URL-Neuschreibkonfiguration. Wenn kein benutzerdefinierter Weiterleitungspfad definiert wurde, wird die Anforderung an das entsprechende Back-End im konfigurierten Back-End-Pool weitergeleitet. Wenn ein benutzerdefinierter Weiterleitungspfad definiert ist, wird der Anforderungspfad entsprechend aktualisiert und dann an das Back-End weitergeleitet.
Nächste Schritte
- Erstellen einer Azure Front Door-Instanz.
- Weitere Informationen finden Sie unter Azure Front Door-Routingarchitektur.
- Erstellen einer Azure Front Door-Instanz (klassisch).
- Weitere Informationen finden Sie unter Azure Front Door-Routingarchitektur.