Создание и настройка шлюза приложений

Завершено

Шлюз приложений состоит из ряда компонентов, которые объединяются для маршрутизации запросов к пулу веб-серверов и проверки работоспособности этих веб-серверов. Посмотрим, как эти компоненты связаны между собой и какую роль они играют в Шлюзе приложений.

Diagram with a visualization of the Application Gateway components.

Интерфейсный IP-адрес

Запросы клиентов поступают на интерфейсный IP-адрес. Вы можете настроить Шлюз приложений таким образом, чтобы он имел общедоступный IP-адрес, частный IP-адрес или же их оба. Шлюз приложений не может иметь больше одного общедоступного и одного частного IP-адреса.

Прослушиватели

Шлюз приложений использует один или несколько прослушивателей, чтобы принимать входящие запросы. Прослушиватель принимает трафик, поступающий на указанное сочетание протокола, порта, узла и IP-адреса. Каждый прослушиватель направляет запросы в пул серверов, следуя заданным вами правилам маршрутизации. Прослушиватель может быть базовым или мультисайтом. Базовый прослушиватель направляет запрос только на основе пути в URL-адресе. Прослушиватель с несколькими сайтами также может направлять запросы с помощью элемента имени узла URL-адреса.

Для обеспечения безопасности приложения между пользователем и Шлюзом приложений прослушиватели также обрабатывают SSL-сертификаты.

Правила маршрутизации

Правило маршрутизации связывает прослушиватель с серверными пулами. Правило указывает, как интерпретировать элементы имени узла и пути в URL-адресе запроса, а также как направлять запрос в соответствующий внутренний пул. Правило маршрутизации также имеет сопутствующий набор параметров HTTP. Эти параметры указывают, зашифрован ли (и каким образом) трафик между Шлюзом приложений и серверами, и содержат другую информацию о конфигурации, такую ​​как:

  • Протокол (HTTP или HTTPS).
  • Закрепление сеансов для передачи всех запросов в сеансе клиента на тот же веб-сервер, вместо распределения их среди серверов с балансировкой нагрузки.
  • Подключение очистка, чтобы обеспечить корректное удаление серверов из внутреннего пула.
  • Период времени ожидания запроса, в секундах.
  • Пробы работоспособности, указание URL-адреса пробы, периодов ожидания и других параметров, используемых для определения доступности сервера в серверном пуле.

Серверные пулы

Серверный пул означает набор веб-серверов. При настройке пула вы указываете IP-адрес каждого веб-сервера и порт, на котором он прослушивает запросы. Каждый пул может быть создан при помощи фиксированного набора виртуальных машин, масштабируемого набора виртуальных машин, приложения, размещенного в Службах приложений Azure, или набора локальных серверов. Каждый серверный пул содержит соответствующую подсистему балансировки нагрузки, которая распределяет работу по всему пулу.

Брандмауэр веб-приложения

Брандмауэр веб-приложения — это дополнительный компонент, который обрабатывает входящие запросы, прежде чем они достигнут прослушивателя. Брандмауэр веб-приложения проверяет каждый запрос на наличие многих распространенных угроз на основе Open Web Application Security Project (Открытого проекта по безопасности интернет-приложений). Например:

  • Внедрение SQL-кода
  • Межсайтовые сценарии
  • Внедрение команд
  • Несанкционированный HTTP-запрос
  • Разделение HTTP-ответа
  • Включение удаленных файлов
  • Боты, программы-обходчики и сканеры
  • Нарушения и аномалии HTTP-протокола

OWASP определил набор универсальных правил для обнаружения атак, называемых набором основных правил (CRS). Наборы правил постоянно пересматриваются, так как атаки приобретают все более сложный характер. WAF поддерживает два набора правил: CRS 2.2.9 и CRS 3.0. CRS 3.0 является более новым набором и используется по умолчанию. При необходимости вы можете выбирать определенные правила в наборе правил, предназначенные для определенных угроз. Кроме того, вы можете настроить брандмауэр, чтобы указать, какие элементы в запросе следует проверять, и ограничить размер сообщений, чтобы избежать перегрузки своих серверов.

Вы можете включить WAF в Шлюз приложений, выбрав WAF уровень при создании шлюза.

Зонды работоспособности

Пробы работоспособности — это важный элемент, помогающий подсистеме балансировки нагрузки определить, какие серверы доступны для балансировки нагрузки в серверном пуле. Шлюз приложений использует проверку работоспособности для отправки запроса на сервер. Если сервер возвращает HTTP-ответ с кодом состояния от 200 до 399, сервер является работоспособным.

Если не настроить проверку работоспособности, Шлюз приложений создаст проверку по умолчанию, которая по прошествии 30 секунд будет считать сервер недоступным.

Требования к сети Шлюза приложений

Для работы Шлюза приложений требуется виртуальная сеть. Прежде чем настраивать Шлюз приложений, необходимо создать эту виртуальную сеть и выделенную подсеть. Шлюз приложений использует ряд частных адресов для внутреннего использования и обмена данными с каждым экземпляром, если шлюз масштабируется. Например, если планируется масштабирование до четырех экземпляров, создайте подсеть размера /28. Если вы хотите дополнительно увеличить масштаб, создайте подсеть еще большего размера.

Вы можете открыть доступ к Шлюзу приложений через общедоступный IP-адрес или сделать его частным, предоставив только частный IP-адрес в пределах виртуальной сети. Это удобно в случае, когда у вас есть внутренние сайты, на которых вы бы хотели использовать Шлюз приложений для обеспечения балансировки нагрузки.

Параметры Шлюза приложений

Шлюз приложений можно создать на Стандартном уровне или на уровне WAF. У вас также есть три размера с различными производительностью, ценами и масштабируемостью: малый, средний и большой.

Стандартный уровень и уровень WAF доступны в двух версиях: V1 и V2. Версия V2 поддерживает зоны доступности Azure, но в настоящее время доступна только ее предварительная версия.

Шлюз приложений поддерживает ручное и автоматическое масштабирование. Если вы выберете автомасштабирование, Шлюз приложений будет масштабироваться автоматически, в зависимости от трафика приложения. Максимальное и минимальное количество экземпляров Шлюза приложений можно ограничить.

Создание и настройка шлюза

Шлюз приложений можно создать и настроить с помощью портала Azure, Azure PowerShell или Azure CLI. Чтобы создать новый шлюз в командной строке Azure, используйте команду az network application-gateway create. Если вы предпочитаете PowerShell, можно использовать командлет New-AzApplicationGateway. Для выполнения большинства операций также можно использовать портал Azure.

Вы можете проверить и изменить конфигурацию компонентов в шлюзе, используя команды az network application-gateway http-listener, az network application-gateway rule, az network application-gateway address-pool, az network application-gateway http-settings и az network application-gateway front-end-port в Azure CLI. Набор командлетов Get-AzApplicationGateway* и Set-AzApplicationGateway* обеспечивает те же операции в PowerShell.

Рассмотрим создание и настройку шлюза приложений для развернутых веб-узлов транспортного отдела.