Comment les requêtes sont mises en correspondance à une configuration d’itinéraire
Dans Azure Front Door, une route définit la façon dont le trafic est géré quand une requête entrante arrive à la périphérie Azure Front Door. Les paramètres de routage établissent une association entre un domaine et un groupe d’origines. En utilisant des fonctionnalités avancées telles que Modèle à mettre en correspondance et Ensemble de règles, vous pouvez avoir un contrôle granulaire du trafic vers vos ressources back-ends.
Remarque
Quand vous utilisez les ensembles de règles Front Door, vous pouvez configurer une règle pour remplacer le groupe d’origine pour une requête. Le groupe d’origine défini par l’ensemble de règles remplace le processus de routage décrit dans cet article.
Important
Azure Front Door (classique) va être mis hors service le 31 mars 2027. Pour éviter toute interruption de service, il est important de migrer vos profils Azure Front Door (classique) vers le niveau Azure Front Door Standard ou Premium au plus en mars 2027. Pour plus d’informations, consultez Mise hors service d’Azure Front Door (classique).
Quand une requête arrive à la périphérie Azure Front Door (classique), une des premières actions effectuées est de déterminer comment router la requête correspondante vers une ressource back-end, puis d’effectuer une action définie dans la configuration du routage. Ce document explique comment Front Door détermine la configuration du routage à utiliser lors du traitement d’une requête.
Structure d’une configuration d’itinéraire de porte d’entrée
Une règle de routage Front Door est constituée de deux parties principales : le « côté gauche» et le « côté droit ». Front Door fait correspondre la requête entrante au côté gauche de la route, tandis que le côté droit définit la façon dont la requête est traitée.
Mise en correspondance de la demande entrante (côté gauche)
Les propriétés suivantes déterminent si la requête entrante correspond à la règle de routage (le côté gauche) :
- Protocoles HTTP – HTTP ou HTTPS
- Domaine – Par exemple : www.foo.com, *.bar.com
- Chemins d’accès – Par exemple : /*, /users/*, /file.gif
Ces propriétés sont développées en interne de sorte que chaque combinaison Protocole/Domaine/Chemin constitue un ensemble avec une correspondance potentielle.
Décision de routage (côté droit)
Le choix de la façon de traiter la requête dépend de l’activation ou non de la mise en cache pour la route. Si une réponse mise en cache n’est pas disponible, la requête est transférée vers l’origine appropriée.
Mise en correspondance avec un itinéraire
Cette section explique comment Front Door fait correspondre les requêtes aux règles de routage. Le principe de base est que Front Door établit toujours une correspondance avec la requête la plus spécifique en évaluant les propriétés du « côté gauche » : protocole, domaine et chemin, dans cet ordre.
Mise en correspondance avec des hôtes frontend
Azure Front Door utilise les étapes suivantes pour établir une correspondance avec des hôtes front-ends :
- Rechercher des routes avec une correspondance exacte sur l’hôte front-end.
- Si aucune correspondance exacte n’est trouvée, la requête est rejetée avec une erreur 404 : Requête incorrecte.
Le tableau suivant montre trois règles de routage différentes avec leurs hôtes front-ends et leurs chemins :
Règle de routage | Hôtes frontend | Path |
---|---|---|
Un | foo.contoso.com | /* |
B | foo.contoso.com | /users/* |
C | www.fabrikam.com, foo.adventure-works.com | /*, /images/* |
Le tableau suivant montre les résultats correspondants pour les règles de routage du tableau précédent :
Hôte frontend entrant | Règles de routage correspondantes |
---|---|
foo.contoso.com | A, B |
www.fabrikam.com | C |
images.fabrikam.com | Erreur 404 : Demande incorrecte |
foo.adventure-works.com | C |
contoso.com | Erreur 404 : Demande incorrecte |
www.adventure-works.com | Erreur 404 : Demande incorrecte |
www.northwindtraders.com | Erreur 404 : Demande incorrecte |
Mise en correspondance avec un chemin
Après qu’Azure Front Door a déterminé l’hôte front-end spécifique et filtré les règles de routage possibles, il sélectionne les règles de routage en fonction du chemin de la requête. La logique suivante est utilisée :
- Rechercher des règles de routage ayant une correspondance exacte avec le chemin de la requête.
- Si aucune correspondance exacte n’est trouvée, rechercher une règle de routage avec un chemin générique en correspondance.
- Si aucun chemin en correspondance n’est trouvé, la requête est rejetée avec une erreur 404 : Requête incorrecte.
Remarque
Le caractère *
générique n’est valide que pour les chemins d’accès qui n’ont pas d’autres caractères après celui-ci. En outre, le caractère *
générique doit être précédé d’une barre oblique /
. Les chemins sans caractère générique sont considérés comme des chemins avec une correspondance exacte. Un chemin qui se termine par une barre oblique /
est également un chemin de correspondance exacte. Vérifiez que vos chemins suivent ces règles pour éviter des erreurs.
Remarque
- Les chemins sans caractère générique sont considérés comme des chemins avec une correspondance exacte. Un chemin se terminant par un
/
est également une correspondance exacte. - Les modèles de chemins ne respectent pas la casse. Par exemple,
/FOO
et/foo
sont traités comme des doublons et ne sont pas autorisés dans le paramètre Modèles à mettre en correspondance.
Le tableau suivant liste des règles de routage avec leurs combinaisons d’hôte front-end et de chemin :
Règle de routage | Hôte frontend | Path |
---|---|---|
Un | 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/ |
Le tableau suivant montre quelle règle de routage correspond à une requête entrante à la périphérie Azure Front Door :
Demandes entrantes | Itinéraire correspondant |
---|---|
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 |
Avertissement
En l’absence de règles de routage pour un hôte front-end avec correspondance exacte sans chemin de route générique (/*), aucune correspondance ne sera établie avec une règle de routage.
Exemple de configuration :
Routage | Host | Path |
---|---|---|
Un | profile.contoso.com | /api/* |
Tableau des correspondances :
Requête entrante | Itinéraire correspondant |
---|---|
profile.domain.com/other | Aucune. Erreur 404 : Demande incorrecte |
Décision de routage
Une fois qu’Azure Front Door établit une correspondance avec une règle de routage, il décide de la façon de traiter la requête. Si une réponse mise en cache est disponible, elle est retournée au client.
Si un ensemble de règles est configuré pour la règle de routage en correspondance, elle est traitée dans l’ordre. Les ensembles de règles peuvent remplacer une route en dirigeant le trafic vers un groupe d’origines spécifique. Si aucun ensemble de règles n’est défini, la requête est transférée sans modifications au groupe d’origines.
Si Azure Front Door (classique) n’a pas de réponse mise en cache, il recherche une configuration de réécriture d’URL. Si aucun chemin de transfert personnalisé n’est défini, la requête est transférée au serveur back-end approprié dans le pool de back-ends configuré. Si un chemin de transfert personnalisé est défini, le chemin de la requête est mis à jour en conséquence, puis transféré au back-end.
Étapes suivantes
- Créer une instance Azure Front Door.
- En savoir plus sur l’architecture de routage d’Azure Front Door.
- Créer une instance Azure Front Door (classique).
- En savoir plus sur l’architecture de routage d’Azure Front Door.