Создание шлюза приложений с внутренней подсистемой балансировки нагрузки (ILB)
Шлюз приложений Azure стандартную версию 1 можно настроить с виртуальным IP-адресом для Интернета или внутренней конечной точкой, которая не предоставляется в Интернете, также называемой внутренней конечной точкой подсистемы балансировки нагрузки (ILB). Настройка шлюза с ILB подходит для внутренних бизнес-приложений, недоступных в Интернете. Кроме того, этот вариант конфигурации можно использовать для служб и уровней многоуровневого приложения, размещенного в периметре безопасности без доступа к Интернету, но требующего циклического перебора нагрузки, закрепления сеансов или завершения сеансов по протоколу TLS (Transport Layer Security), который раньше назывался SSL (Secure Sockets Layer).
В этой статье описаны действия по настройке стандартного Шлюз приложений версии 1 с помощью подсистемы балансировки нагрузки.
Подготовка к работе
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
- Установите последнюю версию модуля Azure PowerShell по этим инструкциям.
- Вы создадите виртуальную сеть и подсеть для шлюза приложений. Убедитесь, что подсеть не используется виртуальной машиной или облачным развертыванием. Сам шлюз приложений должен находиться в подсети виртуальной сети.
- Для использования шлюза приложений настраиваются существующие серверы или серверы, для которых в виртуальной сети созданы конечные точки либо же назначен общедоступный или виртуальный IP-адрес.
Что необходимо для создания шлюза приложений?
- Пул внутренних серверов: список IP-адресов для внутренних серверов. Указанные IP-адреса должны относиться к одной виртуальной сети (но не входить в подсеть шлюза приложений) либо представлять собой общедоступные или виртуальные IP-адреса.
- Параметры пула внутренних серверов: каждый пул имеет такие параметры, как порт, протокол и соответствие на основе файлов cookie. Эти параметры привязываются к пулу и применяются ко всем серверам в этом пуле.
- Интерфейсный порт: это общедоступный порт, открытый на шлюзе приложений. Трафик поступает в этот порт, а затем перенаправляется на один из внутренних серверов.
- Прослушиватель: прослушиватель имеет внешний порт, протокол (Http или Https; регистр имеет значение) и имя SSL-сертификата (если настраивается разгрузка SSL).
- Правило: правило связывает прослушиватель и пул внутренних серверов и определяет, в какой пул внутренних серверов должен направляться трафик, попадающий в определенный прослушиватель. В настоящее время поддерживается только основное правило. Основное правило предусматривает циклическое распределение нагрузки.
Создание Шлюза приложений
Разница между использованием классической модели развертывания Azure и модели Azure Resource Manager заключается в порядке создания шлюза приложения и элементов, которые нужно настроить. При использовании Resource Manager все элементы, которые будут включены в единый ресурс шлюза приложений, сначала настраиваются по отдельности.
Ниже приведены пошаговые инструкции по созданию шлюза приложений.
- Создание группы ресурсов для Resource Manager.
- Создание виртуальной сети и подсети для шлюза приложений.
- Создание объекта конфигурации шлюза приложений.
- Создание ресурса шлюза приложений.
Создание группы ресурсов для Resource Manager.
Для работы с командлетами диспетчера ресурсов Azure необходимо перейти в режим PowerShell. Дополнительные сведения см. в статье Использование 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 в расположении West US (западная часть США).
Создание виртуальной сети и подсети для шлюза приложений.
В следующем примере показано создание виртуальной сети с помощью диспетчера ресурсов.
Шаг 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
Этот шаг настраивает параметр шлюза приложений pooletting01 для сетевого трафика с балансировкой нагрузки в серверном пуле.
Шаг 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.
Удаление шлюза приложений
Чтобы удалить шлюз приложений, по порядку выполните указанные ниже действия.
- Остановите шлюз с помощью командлета
Stop-AzApplicationGateway
. - Удалите шлюз с помощью командлета
Remove-AzApplicationGateway
. - С помощью командлета
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.
Дополнительные сведения о параметрах балансировки нагрузки в целом см. в статьях: