Сопоставление запросов с конфигурацией маршрута
Маршрут в 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 состоит из двух основных частей, левой стороны и правой стороны. Front Door соответствует входящему запросу слева от маршрута, а в правой части определяется способ обработки запроса.
Входящее соответствие (левая сторона)
Следующие свойства определяют, соответствует ли входящий запрос правилу маршрутизации (левая сторона)
- Протоколы HTTP — HTTP или HTTPS
- Домен — например, www.foo.com, *.bar.com
- Пути: /*, /users/*, /file.gif
Эти свойства развертываются внутри системы, чтобы каждая комбинация протокола или домена или пути была потенциальной набором совпадений.
Решение по маршрутизации (справа)
Решение об обработке запроса зависит от того, включена ли кэширование для маршрута. Если кэшированный ответ недоступен, запрос пересылается в соответствующий источник.
Сопоставление маршрутов
В этом разделе рассматривается соответствие Front Door правилу маршрутизации. Основная концепция заключается в том, что 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: недопустимый запрос |
Согласование путей
После того как Front Door определяет конкретный интерфейсный узел и фильтры для возможных правил маршрутизации, Front Door затем выбирает правила маршрутизации на основе пути запроса. Аналогичная логика для интерфейсных узлов используется для сопоставления пути запроса:
- Определите, существуют ли правила маршрутизации с точным соответствием пути запроса.
- Если нет точного пути сопоставления, Front Door ищет правило маршрутизации с подстановочным знаком, который соответствует.
- Если нет правил маршрутизации с соответствующим путем, запрос отклоняется и 404: ошибка "Неправильный запрос" отправляется.
Примечание.
Подстановочный знак *
действителен только для путей, у которых нет других символов после него. Кроме того, подстановочный знак *
должен предшествовать косой черте /
. Пути без подстановочного знака считаются точными путями сопоставления. Путь, заканчивающийся косой чертой /
, также представляет собой путь точного соответствия. Убедитесь, что пути следуют этим правилам, чтобы избежать ошибок.
Примечание.
- Любые пути без подстановочного знака считаются точными путями сопоставления. Если путь заканчивается в
/
, это считается точным совпадением. - В шаблонах, соответствующих путям, регистр не учитывается, то есть пути, которые отличаются только регистрами букв, считаются одинаковыми. Например,узел использует один протокол с путями
/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/ |
В следующей таблице показано, какое правило маршрутизации входящий запрос сопоставляется при поступлении на пограничный сервер 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: недопустимый запрос |
Решение о маршрутизации
После сопоставления Front Door с одним правилом маршрутизации он должен выбрать способ обработки запроса. Если в Azure Front Door есть кэшированный ответ, доступный для соответствующего правила маршрутизации, запрос возвращается клиенту.
Наконец, Azure Front Door оценивает, настроен ли набор правил, настроенный для соответствующего правила маршрутизации. Если набор правил не определен, запрос перенаправляется в группу источников без каких-либо изменений. В противном случае наборы правил обрабатываются в настроенном порядке. Наборы правил могут переопределить маршрут , принудив трафик к определенной группе источников.
Если Front Door (классическая версия) не имеет кэшированного ответа для соответствующего правила маршрутизации, он оценивает, настроена ли перезапись URL-адресов для соответствующего правила маршрутизации. Если нет пользовательского пути пересылки, запрос перенаправляется в соответствующую серверную часть в настроенном серверном пуле без изменений. Если определен пользовательский путь пересылки, путь запроса обновляется, как определено в пользовательском пути пересылки, а затем перенаправляется в серверную часть.
Следующие шаги
- Узнайте, как создать ресурс Azure Front Door.
- Узнайте об архитектуре маршрутизации Azure Front Door.
- Узнайте, как создать Azure Front Door (классическая модель).
- Узнайте об архитектуре маршрутизации Azure Front Door.