Jak żądania są dopasowywane do konfiguracji trasy

Trasa w usłudze Azure Front Door definiuje sposób obsługi ruchu po nadejściu żądania przychodzącego do brzegu usługi Azure Front Door. Za pomocą ustawień trasy skojarzenie jest definiowane między domeną a grupą pochodzenia. Korzystając z zaawansowanych funkcji, takich jak Wzorzec do dopasowywania i zestawów reguł, możesz mieć szczegółową kontrolę nad ruchem do zasobów zaplecza.

Uwaga

W przypadku używania zestawów reguł usługi Front Door można skonfigurować regułę, aby zastąpić grupę pochodzenia dla żądania. Grupa pochodzenia ustawiona przez zestaw reguł zastępuje proces routingu opisany w tym artykule.

Ważne

Usługa Azure Front Door (klasyczna) zostanie wycofana 31 marca 2027 r. Aby uniknąć zakłóceń w działaniu usługi, należy przeprowadzić migrację profilów usługi Azure Front Door (wersja klasyczna) do warstwy Azure Front Door Standard lub Premium do marca 2027 r. Aby uzyskać więcej informacji, zobacz Wycofywanie usługi Azure Front Door (wersja klasyczna).

Gdy żądanie dociera do usługi Azure Front Door (wersja klasyczna), jedną z pierwszych rzeczy, które usługa Front Door wykonuje, jest określenie sposobu kierowania pasującego żądania do zasobu zaplecza, a następnie podjęcia zdefiniowanej akcji w konfiguracji routingu. W poniższym dokumencie wyjaśniono, jak usługa Front Door określa konfigurację trasy do użycia podczas przetwarzania żądania.

Struktura konfiguracji trasy usługi Front Door

Reguła routingu usługi Front Door składa się z dwóch głównych części: "lewej strony" i "po prawej stronie". Usługa Front Door pasuje do żądania przychodzącego po lewej stronie trasy, a po prawej stronie definiuje sposób przetwarzania żądania.

Dopasowanie przychodzące (po lewej stronie)

Następujące właściwości określają, czy żądanie przychodzące jest zgodne z regułą routingu (lub po lewej stronie):

  • Protokoły HTTP — HTTP lub HTTPS
  • Domena — na przykład: www.foo.com, *.bar.com
  • Ścieżki — na przykład: /*, /users/*, /file.gif

Te właściwości są rozszerzane wewnętrznie, dzięki czemu każda kombinacja protokołu/domeny/ścieżki jest potencjalnym zestawem dopasowania.

Decyzja o routingu (po prawej stronie)

Decyzja o sposobie przetwarzania żądania zależy od tego, czy buforowanie jest włączone dla trasy. Jeśli buforowana odpowiedź jest niedostępna, żądanie jest przekazywane do odpowiedniego źródła.

Dopasowywanie tras

Ta sekcja koncentruje się na tym, jak usługa Front Door pasuje do reguły routingu. Podstawowa koncepcja polega na tym, że usługa Front Door zawsze odpowiada najbardziej specyficznemu żądaniu , patrząc tylko po lewej stronie. Usługa Front Door najpierw jest zgodna z protokołem, a następnie domeną i ostatnią ścieżką.

Dopasowywanie hosta frontonu

Usługa Azure Front Door używa następującej logiki do dopasowania hostów frontonu:

  1. Ustal, czy istnieją jakieś trasy z dokładnym dopasowaniem na hoście frontonu.
  2. Jeśli nie ma dokładnego dopasowania hostów frontonu, żądanie zostanie odrzucone i zostanie wysłane błąd 400: Nieprawidłowe żądanie zostanie wysłane.

W poniższych tabelach przedstawiono trzy różne reguły routingu z hostem frontonu i ścieżkami:

Reguła routingu Hosty frontonu Ścieżka
A foo.contoso.com /*
B foo.contoso.com /Użytkowników/*
C www.fabrikam.com, foo.adventure-works.com /*/Obrazów/*

W poniższej tabeli przedstawiono pasujące wyniki dla powyższych reguł routingu:

Przychodzący host frontonu Dopasowane reguły routingu
foo.contoso.com A, B
www.fabrikam.com C
images.fabrikam.com Błąd 400: Nieprawidłowe żądanie
foo.adventure-works.com C
contoso.com Błąd 400: Nieprawidłowe żądanie
www.adventure-works.com Błąd 400: Nieprawidłowe żądanie
www.northwindtraders.com Błąd 400: Nieprawidłowe żądanie

Dopasowywanie ścieżki

Gdy usługa Front Door określi określonego hosta frontonu i filtruje możliwe reguły routingu, usługa Front Door wybiera reguły routingu na podstawie ścieżki żądania. Podobna logika do hostów frontonu jest używana do dopasowania ścieżki żądania:

  1. Ustal, czy istnieją jakiekolwiek reguły routingu z dokładnym dopasowaniem do ścieżki żądania.
  2. Jeśli nie ma dokładnej pasującej ścieżki, usługa Front Door szuka reguły routingu ze zgodną ścieżką wieloznaczny.
  3. Jeśli nie znaleziono żadnych reguł routingu z pasującą ścieżką, żądanie zostanie odrzucone, a błąd 400: Błąd nieprawidłowego żądania zostanie ustawiony.

Uwaga

Symbol * wieloznaczny jest prawidłowy tylko dla ścieżek, które nie mają po nim żadnych innych znaków. Ponadto symbol * wieloznaczny musi być poprzedzony ukośnikiem /. Ścieżki bez symbolu wieloznakowego są uważane za ścieżki dokładnego dopasowania. Ścieżka, która kończy się ukośnikiem / , jest również ścieżką dokładnego dopasowania. Upewnij się, że ścieżki są zgodne z tymi regułami, aby uniknąć błędów.

Uwaga

  • Wszystkie ścieżki bez symbolu wieloznakowego są uważane za ścieżki dokładnego dopasowania. Jeśli ścieżka kończy się w elemecie /, jest to uważane za dokładne dopasowanie.
  • Wzorce do dopasowywania ścieżek są bez uwzględniania wielkości liter, co oznacza, że ścieżki z różnymi wielkościami liter są traktowane jako duplikaty. Na przykład masz tego samego hosta przy użyciu tego samego protokołu ze ścieżkami /FOO i /foo. Te ścieżki są uznawane za duplikaty, które nie są dozwolone w ustawieniu Wzorce do dopasowania.

Poniższa tabela zawiera listę reguł routingu, hosta frontonu i kombinacji ścieżek:

Reguła routingu Host frontonu Ścieżka
A 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 /Ścieżka/

W poniższej tabeli przedstawiono regułę routingu, do której jest dopasowywane żądanie przychodzące po przybyciu do krawędzi usługi Front Door:

Żądanie przychodzące Dopasowana trasa
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

Ostrzeżenie

Jeśli nie ma reguł routingu dla hosta frontonu dokładnego dopasowania z ścieżką trasy typu catch-all (/*), nie będzie pasować do żadnej reguły routingu.

Przykładowa konfiguracja:

Marszruta Gospodarz Ścieżka
A profile.contoso.com /Api/*

Pasująca tabela:

Żądanie przychodzące Dopasowana trasa
profile.domain.com/other Brak. Błąd 400: Nieprawidłowe żądanie

Decyzja dotycząca routingu

Po dopasowaniu usługi Front Door do pojedynczej reguły routingu należy wybrać sposób przetwarzania żądania. Jeśli usługa Azure Front Door ma buforowaną odpowiedź dostępną dla dopasowanej reguły routingu, żądanie zostanie obsłużone z powrotem do klienta.

Ponadto usługa Azure Front Door ocenia, czy masz zestaw reguł skonfigurowany dla dopasowanej reguły routingu. Jeśli żaden zestaw reguł nie zostanie zdefiniowany, żądanie zostanie przekazane do grupy pochodzenia bez żadnych zmian. W przeciwnym razie zestawy reguł są przetwarzane w skonfigurowanej kolejności. Zestawy reguł mogą przesłonić trasę , wymuszając ruch do określonej grupy pochodzenia.

Jeśli usługa Front Door (klasyczna) nie ma buforowanej odpowiedzi dla dopasowanej reguły routingu, ocenia, czy ponowne zapisywanie adresów URL jest skonfigurowane dla dopasowanej reguły routingu. Jeśli nie ma niestandardowej ścieżki przesyłania dalej, żądanie zostanie przekazane do odpowiedniego zaplecza w skonfigurowanej puli zaplecza bez zmian. Jeśli zdefiniowano niestandardową ścieżkę przesyłania dalej, ścieżka żądania zostanie zaktualizowana zgodnie z definicją w niestandardowej ścieżce przesyłania dalej, a następnie zostanie przekazana do zaplecza.

Następne kroki