Сопоставление запросов с конфигурацией маршрута
Маршрут в Azure Front Door определяет, как обрабатывается трафик при поступлении входящего запроса на пограничный сервер Azure Front Door. Параметры маршрута устанавливают связь между доменом и группой источников. С помощью дополнительных функций, таких как шаблон для сопоставления и наборов правил, можно иметь детальный контроль над трафиком к внутренним ресурсам.
Примечание.
При использовании наборов правил Front Door можно настроить правило для переопределения группы источников для запроса. Группа источников, заданная набором правил, переопределяет процесс маршрутизации, описанный в этой статье.
Внимание
Azure Front Door (классическая версия) будет прекращена 31 марта 2027 г. Чтобы избежать нарушений работы служб, важно перенести профили Azure Front Door (классический) на уровень Azure Front Door standard или Premium к марту 2027 года. Дополнительные сведения см. в статье azure Front Door (классическая версия) для выхода на пенсию.
При поступлении запроса на пограничный сервер Azure Front Door (классическая модель) необходимо определить, как маршрутизировать соответствующий запрос на внутренний ресурс, а затем выполнить определенное действие в конфигурации маршрутизации. В этом документе объясняется, как Front Door определяет конфигурацию маршрута, используемую при обработке запроса.
Структура конфигурации маршрута Front Door
Правило маршрутизации Front Door состоит из двух основных частей: левой стороны и правой стороны. Front Door соответствует входящему запросу слева от маршрута, а в правой части определяется способ обработки запроса.
Входящее соответствие (левая сторона)
Следующие свойства определяют, соответствует ли входящий запрос правилу маршрутизации (слева):
- Протоколы HTTP — HTTP или HTTPS
- Домен — например, www.foo.com, *.bar.com
- Пути: /*, /users/*, /file.gif
Эти свойства расширяются внутри системы, чтобы каждая комбинация протокола или домена или пути была потенциальной набором совпадений.
Решение по маршрутизации (справа)
Решение об обработке запроса зависит от того, включена ли кэширование для маршрута. Если кэшированный ответ недоступен, запрос пересылается в соответствующий источник.
Сопоставление маршрутов
В этом разделе объясняется, как Front Door сопоставляет запросы к правилам маршрутизации. Основным принципом является то, что Front Door всегда соответствует наиболее конкретному запросу , оценивая свойства слева: протокол, домен и путь в этом порядке.
Сопоставление узла внешнего интерфейса
Azure Front Door использует следующие шаги для сопоставления интерфейсных узлов:
- Проверьте маршруты с точным совпадением на интерфейсном узле.
- Если точное совпадение не найдено, запрос отклоняется с ошибкой 404: ошибка "Неправильный запрос".
В следующих таблицах показаны три разных правила маршрутизации с их интерфейсными узлами и путями:
Правило маршрутизации | Узлы внешнего интерфейса | Путь |
---|---|---|
а | foo.contoso.com | /* |
Б | foo.contoso.com | /users/* |
C | www.fabrikam.com, foo.adventure-works.com | /*, /images/* |
В следующей таблице показаны результаты сопоставления правил маршрутизации в предыдущей таблице:
Входящий узел внешнего интерфейса | Соответствующие правила маршрутизации |
---|---|
foo.contoso.com | A, B |
www.fabrikam.com | C |
images.fabrikam.com | Ошибка 404: недопустимый запрос |
foo.adventure-works.com | C |
contoso.com | Ошибка 404: недопустимый запрос |
www.adventure-works.com | Ошибка 404: недопустимый запрос |
www.northwindtraders.com | Ошибка 404: недопустимый запрос |
Согласование путей
После определения конкретного внешнего узла и фильтрации возможных правил маршрутизации Azure Front Door он выбирает правила маршрутизации на основе пути запроса. Используется следующая логика:
- Проверьте правила маршрутизации с точным соответствием пути запроса.
- Если точное совпадение не найдено, найдите правило маршрутизации с подстановочным знаком, который соответствует.
- Если путь сопоставления не найден, запрос отклоняется с ошибкой 404: ошибка "Неправильный запрос".
Примечание.
Подстановочный знак *
действителен только для путей, у которых нет других символов после него. Кроме того, подстановочный знак *
должен предшествовать косой черте /
. Пути без подстановочного знака считаются путями точного соответствия. Путь, заканчивающийся косой чертой /
, также представляет собой путь точного соответствия. Убедитесь, что пути следуют этим правилам, чтобы избежать ошибок.
Примечание.
- Пути без подстановочного знака считаются путями точного соответствия. Путь, заканчивающийся на a
/
, также является точным совпадением. - Шаблоны пути являются нечувствительными к регистру. Например,
/FOO
и/foo
обрабатываются как повторяющиеся и не допускаются в шаблонах для сопоставления параметров.
В следующей таблице перечислены правила маршрутизации с их сочетаниями внешнего узла и пути:
Правило маршрутизации | Узел внешнего интерфейса | Путь |
---|---|---|
а | www.contoso.com | / |
Б | 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/ |
В следующей таблице показано, какое правило маршрутизации соответствует входящему запросу на границе Azure Front Door:
Входящий запрос | Соответствующий маршрут |
---|---|
www.contoso.com/ | а |
www.contoso.com/a | Б |
www.contoso.com/ab | C |
www.contoso.com/abc | D |
www.contoso.com/abzzz | Б |
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 | Б |
www.contoso.com/path/ | H |
www.contoso.com/path/zzz | Б |
Предупреждение
Если для внешнего узла точного соответствия нет правил маршрутизации без пути перехвата всех маршрутов (/*), ни одно правило маршрутизации не будет сопоставлено.
Пример конфигурации:
Маршрут | Хост | Путь |
---|---|---|
а | profile.contoso.com | /api/* |
Таблица соответствия:
Входящий запрос | Соответствующий маршрут |
---|---|
profile.domain.com/other | Нет. Ошибка 404: недопустимый запрос |
Решение о маршрутизации
После того как Azure Front Door соответствует правилу маршрутизации, он решает, как обработать запрос. Если кэшированный ответ доступен, он возвращается клиенту.
Если набор правил настроен для соответствующего правила маршрутизации, он обрабатывается по порядку. Наборы правил могут переопределить маршрут , направив трафик в определенную группу источников. Если набор правил не определен, запрос пересылается в группу источников без изменений.
Если в Azure Front Door (классическая версия) нет кэшированного ответа, он проверяет конфигурацию перезаписи URL-адресов. Если пользовательский путь пересылки не определен, запрос перенаправляется в соответствующую серверную часть в настроенном серверном пуле. Если определен пользовательский путь пересылки, путь запроса обновляется соответствующим образом, а затем перенаправляется в серверную часть.
Следующие шаги
- Создайте Azure Front Door.
- Узнайте об архитектуре маршрутизации Azure Front Door.
- Создайте Azure Front Door (классическую версию).
- Узнайте об архитектуре маршрутизации Azure Front Door.