Поделиться через


Создание шлюза приложений с внутренней подсистемой балансировки нагрузки (ILB)

Шлюз приложений Azure Standard v1 можно настроить с виртуальным IP-адресом, доступным для Интернета, или с внутренней конечной точкой, которая не доступна из Интернета, также называемой конечной точкой внутреннего балансировщика нагрузки (ILB). Настройка шлюза с ILB подходит для внутренних бизнес-приложений, недоступных в Интернете. Кроме того, этот вариант конфигурации может быть полезен для служб и уровней многоуровневого приложения, которые находятся в периметре безопасности без выхода в Интернет, но при этом им требуется равномерное распределение нагрузки по алгоритму "round-robin", привязка сеансов или завершение SSL-соединений с использованием протокола TLS (Transport Layer Security), ранее известного как SSL (Secure Sockets Layer).

В этой статье описаны шаги по настройке шлюза приложений Standard v1 с использованием внутреннего балансировщика нагрузки.

Прежде чем начать

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. Перенос Azure PowerShell с AzureRM на Az.

  1. Установите последнюю версию модуля Azure PowerShell по этим инструкциям.
  2. Вы создадите виртуальную сеть и подсеть для шлюза приложений. Убедитесь, что ни одна виртуальная машина или облачное развертывание не использует подсеть. Сам шлюз приложений должен находиться в подсети виртуальной сети.
  3. Для использования шлюза приложений серверы должны существовать или иметь свои конечные точки, созданные либо в виртуальной сети, либо с назначением общедоступного или виртуального IP-адреса.

Что необходимо для создания шлюза приложений?

  • Пул внутренних серверов: список IP-адресов для внутренних серверов. Указанные IP-адреса должны принадлежать виртуальной сети, но находиться в другой подсети, чем шлюз приложений, либо представлять собой общедоступные IP-адреса или виртуальные IP-адреса (VIP).
  • Параметры пула внутренних серверов: каждый пул имеет такие параметры, как порт, протокол и соответствие на основе файлов cookie. Эти параметры привязываются к пулу и применяются ко всем серверам в этом пуле.
  • Интерфейсный порт: это общедоступный порт, открытый на шлюзе приложений. Трафик поступает в этот порт, а затем перенаправляется на один из внутренних серверов.
  • Прослушиватель: имеет внешний порт, протокол (HTTP или HTTPS, учитывающий регистр) и имя SSL-сертификата (при настройке разгрузки SSL).
  • Правило: правило связывает прослушиватель и пул внутренних серверов и определяет, в какой пул внутренних серверов должен направляться трафик, попадающий в определенный прослушиватель. В настоящее время поддерживается только основное правило. Основное правило предусматривает циклическое распределение нагрузки.

Создание Шлюза приложений

Разница между использованием классической модели развертывания Azure и модели Azure Resource Manager заключается в порядке создания шлюза приложения и элементов, которые нужно настроить. С помощью Resource Manager все элементы, из которых состоит шлюз приложений, настраиваются по отдельности, а затем объединяются для создания этого ресурса.

Ниже приведены пошаговые инструкции по созданию шлюза приложений.

  1. Создание группы ресурсов для Resource Manager.
  2. Создание виртуальной сети и подсети для шлюза приложений.
  3. Создание объекта конфигурации шлюза приложений.
  4. Создание ресурса шлюза приложений.

Создание группы ресурсов для Resource Manager.

Убедитесь, что вы переключили режим PowerShell на использование командлетов Azure Resource Manager. Дополнительные сведения см. в статье Использование Windows PowerShell с диспетчером ресурсов.

Шаг 1

Connect-AzAccount

Шаг 2.

Проверьте подписки на учетную запись.

Get-AzSubscription

Вам будет предложено указать свои учетные данные для проверки подлинности.

Шаг 3.

Выберите, какие подписки Azure будут использоваться.

Select-AzSubscription -Subscriptionid "GUID of subscription"

Шаг 4

Создайте группу ресурсов (если вы используете существующую группу, пропустите этот шаг).

New-AzResourceGroup -Name appgw-rg -location "West US"

Диспетчер ресурсов Azure требует, чтобы все группы ресурсов указывали расположение. Оно используется в качестве расположения по умолчанию для всех ресурсов данной группы. Убедитесь, что во всех командах для создания шлюза приложений используется одна группа ресурсов.

В приведенном выше примере мы создали группу ресурсов "appgw-rg" в регионе "Запад США".

Создание виртуальной сети и подсети для шлюза приложений.

В следующем примере показано создание виртуальной сети с помощью диспетчера ресурсов.

Шаг 1

$subnetconfig = New-AzVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24

На этом шаге выполняется назначение диапазона адресов 10.0.0.0/24 переменной подсети, которая будет использоваться для создания виртуальной сети.

Шаг 2.

$vnet = New-AzVirtualNetwork -Name appgwvnet -ResourceGroupName appgw-rg -Location "West US" -AddressPrefix 10.0.0.0/16 -Subnet $subnetconfig

На этом шаге создается виртуальная сеть appgwvnet в группе ресурсов appgw-rg для региона западная часть США с помощью префикса 10.0.0.0/16 с подсетью 10.0.0.0/24.

Шаг 3.

$subnet = $vnet.subnets[0]

На этом шаге выполняется присвоение объекта подсети переменной $subnet для выполнения следующих действий.

Создание объекта конфигурации шлюза приложений.

Шаг 1

$gipconfig = New-AzApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet

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

Шаг 2.

$pool = New-AzApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 10.1.1.8,10.1.1.9,10.1.1.10

На этом шаге настраивается пул IP-адресов серверной части с именем pool01 с IP-адресами 10.1.1.8, 10.1.9, 10.1.1.10. Это IP-адреса, получающие сетевой трафик, поступающий из конечной точки внешнего IP-адреса. Замените приведенные выше IP-адреса и добавьте IP-адреса конечных точек своего приложения.

Шаг 3.

$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Disabled

Этот шаг настраивает параметр шлюза приложений "poolsetting01" для сетевого трафика с балансировкой нагрузки в серверном пуле.

Шаг 4

$fp = New-AzApplicationGatewayFrontendPort -Name frontendport01  -Port 80

Этот шаг настраивает внешний IP-порт с именем frontendport01 для ILB.

Шаг 5

$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name fipconfig01 -Subnet $subnet

На этом шаге создается интерфейсная IP-конфигурация с именем fipconfig01 и связывает ее с частным IP-адресом из текущей подсети виртуальной сети.

Шаг 6

$listener = New-AzApplicationGatewayHttpListener -Name listener01  -Protocol Http -FrontendIPConfiguration $fipconfig -FrontendPort $fp

На этом шаге создается прослушиватель с именем "listener01" и связывает интерфейсный порт с конфигурацией внешнего IP-адреса.

Шаг 7

$rule = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

На этом шаге выполняется создание правила маршрутизации rule01 для настройки поведения подсистемы балансировки нагрузки.

Шаг 8

$sku = New-AzApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2

На этом шаге выполняется настройка размера экземпляра шлюза приложений.

Примечание.

Значение по умолчанию для емкости — 2. Для имени SKU вы можете выбрать значения Standard_Small, Standard_Medium или Standard_Large.

Создайте шлюз приложений с помощью командлета New-AzureApplicationGateway

Создайте шлюз приложений со всеми элементами конфигурации, описанными выше. В этом примере шлюз приложений называется "appgwtest".

$appgw = New-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Location "West US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig  -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku

На этом шаге создается шлюз приложений со всеми элементами конфигурации, описанными выше. В этом примере шлюз приложений называется appgwtest.

Удаление шлюза приложений

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

  1. Остановите шлюз с помощью командлета Stop-AzApplicationGateway.
  2. Удалите шлюз с помощью командлета Remove-AzApplicationGateway.
  3. С помощью командлета Get-AzureApplicationGateway проверьте, удален ли шлюз.

Шаг 1

Получите объект шлюза приложений и свяжите его с переменной $getgw.

$getgw =  Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

Шаг 2.

Для остановки шлюза приложений используйте Stop-AzApplicationGateway. В данном примере командлет Stop-AzApplicationGateway показан в первой строке, а за ним следуют выходные данные.

Stop-AzApplicationGateway -ApplicationGateway $getgw  
VERBOSE: 9:49:34 PM - Begin Operation: Stop-AzureApplicationGateway
VERBOSE: 10:10:06 PM - Completed Operation: Stop-AzureApplicationGateway
Name       HTTP Status Code     Operation ID                             Error
----       ----------------     ------------                             ----
Successful OK                   ce6c6c95-77b4-2118-9d65-e29defadffb8

Когда шлюз находится в состоянии остановки, используйте командлет Remove-AzApplicationGateway, чтобы удалить службу.

Remove-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Force
VERBOSE: 10:49:34 PM - Begin Operation: Remove-AzureApplicationGateway
VERBOSE: 10:50:36 PM - Completed Operation: Remove-AzureApplicationGateway
Name       HTTP Status Code     Operation ID                             Error
----       ----------------     ------------                             ----
Successful OK                   055f3a96-8681-2094-a304-8d9a11ad8301

Примечание.

Если указать параметр -force, запрос на подтверждение удаления не появится.

Для проверки того, удалена ли служба, используйте командлет Get-AzApplicationGateway. Этот шаг не является обязательным.

Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg
VERBOSE: 10:52:46 PM - Begin Operation: Get-AzureApplicationGateway

Get-AzureApplicationGateway : ResourceNotFound: The gateway doesn't exist.

Следующие шаги

Чтобы настроить разгрузку SSL, ознакомьтесь с настройкой шлюза приложений для разгрузки SSL.

Дополнительные сведения о параметрах балансировки нагрузки в целом см. в статьях: