Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы добавите пользовательский датчик в существующий шлюз приложений с помощью PowerShell. Пользовательские пробы полезны для приложений с конкретной страницей проверки работоспособности или для приложений, которые не выдают успешный ответ на стандартной странице веб-приложения.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перенести на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.
Предварительные требования. Установка модуля Azure PowerShell
Для выполнения действий, описанных в этой статье, требуется установить и настроить модуль Azure PowerShell. Обязательно выполните все инструкции. По завершении установки войдите в Azure и выберите свою подписку.
Примечание.
Для выполнения этих инструкций требуется учетная запись Azure. Если у вас нет учетной записи Azure, вы можете зарегистрироваться и получить бесплатную пробную версию.
Создание шлюза приложений с настраиваемой проверкой
Вход и создание группы ресурсов
Используйте
Connect-AzAccount
для аутентификации.Connect-AzAccount
Получите подписку для учетной записи.
Get-AzSubscription
Выберите, какие подписки Azure будут использоваться.
Select-AzSubscription -Subscriptionid '{subscriptionGuid}'
Создать группу ресурсов. Если у вас есть группа ресурсов, можно пропустить этот шаг.
New-AzResourceGroup -Name appgw-rg -Location 'West US'
Диспетчер ресурсов Azure требует, чтобы все группы ресурсов указывали расположение. Это расположение используется в качестве расположения по умолчанию для всех ресурсов данной группы. Убедитесь, что во всех командах для создания шлюза приложений используется одна группа ресурсов.
В примере выше мы создали группу ресурсов appgw-RG в западной части США.
Создание виртуальной сети и подсети
Следующий пример кода создает виртуальную сеть и подсеть шлюза приложений. Шлюзу приложений требуется собственная подсеть. По этой причине созданная для него подсеть должна быть меньше адресного пространства виртуальной сети. Это позволит создавать и использовать другие подсети.
# Assign the address range 10.0.0.0/24 to a subnet variable to be used to create a virtual network.
$subnet = New-AzVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24
# Create a virtual network named appgwvnet in resource group appgw-rg for the West US region using the prefix 10.0.0.0/16 with subnet 10.0.0.0/24.
$vnet = New-AzVirtualNetwork -Name appgwvnet -ResourceGroupName appgw-rg -Location 'West US' -AddressPrefix 10.0.0.0/16 -Subnet $subnet
# Assign a subnet variable for the next steps, which create an application gateway.
$subnet = $vnet.Subnets[0]
Создание общедоступного IP-адреса для конфигурации внешнего интерфейса
Создайте ресурс общедоступного IP-адреса с именем publicIP01 в группе ресурсов appgw-rg для региона "Западная часть США". В этом примере используется общедоступный IP-адрес для внешнего IP-адреса шлюза приложений. Шлюзу приложений требуется общедоступный IP-адрес с динамически созданным DNS-именем, поэтому при создании общедоступных IP-адресов нельзя указывать -DomainNameLabel
.
$publicip = New-AzPublicIpAddress -ResourceGroupName appgw-rg -Name publicIP01 -Location 'West US' -AllocationMethod Dynamic
Создание Шлюза приложений
Перед созданием шлюза приложений необходимо настроить все элементы конфигурации. Пример кода ниже создает элементы конфигурации, необходимые для ресурса шлюза приложений.
Компонент | Description |
---|---|
Конфигурация IP-адреса шлюза | Конфигурация IP-адреса шлюза приложений. |
Серверный пул | Пул IP-адресов, полных доменных имен или сетевых адаптеров, связанных с серверами приложений, на которых размещается веб-приложение. |
Проба работоспособности | Пользовательская проба, используемая для мониторинга работоспособности участников серверного пула. |
Параметры HTTP | Коллекция параметров, включая порт, протокол, связывание на основе файлов cookie, проверку и время ожидания. Эти параметры определяют передачу трафика участникам серверного пула. |
Интерфейсный порт | Порт, на котором шлюз приложений прослушивает трафик. |
Слушатель | Сочетание протокола, конфигурации интерфейсного IP-адреса и интерфейсного порта. Это компонент, который прослушивает входящие запросы. |
Правило | Направляет трафик в соответствующую серверную часть на основе параметров HTTP. |
# Creates an application gateway Frontend IP configuration named gatewayIP01
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet
#Creates a backend IP address pool named pool01 with IP addresses 134.170.185.46, 134.170.188.221, 134.170.185.50.
$pool = New-AzApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221, 134.170.185.50
# Creates a probe that will check health at http://contoso.com/path/path.htm
$probe = New-AzApplicationGatewayProbeConfig -Name probe01 -Protocol Http -HostName 'contoso.com' -Path '/path/path.htm' -Interval 30 -Timeout 120 -UnhealthyThreshold 8
# Creates the backend http settings to be used. This component references the $probe created in the previous command.
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Disabled -Probe $probe -RequestTimeout 80
# Creates a frontend port for the application gateway to listen on port 80 that will be used by the listener.
$fp = New-AzApplicationGatewayFrontendPort -Name frontendport01 -Port 80
# Creates a frontend IP configuration. This associates the $publicip variable defined previously with the frontend IP that will be used by the listener.
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name fipconfig01 -PublicIPAddress $publicip
# Creates the listener. The listener is a combination of protocol and the frontend IP configuration $fipconfig and frontend port $fp created in previous steps.
$listener = New-AzApplicationGatewayHttpListener -Name listener01 -Protocol Http -FrontendIPConfiguration $fipconfig -FrontendPort $fp
# Creates the rule that routes traffic to the backend pools. In this example we create a basic rule that uses the previous defined http settings and backend address pool. It also associates the listener to the rule
$rule = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
# Sets the SKU of the application gateway, in this example we create a small standard application gateway with 2 instances.
$sku = New-AzApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2
# The final step creates the application gateway with all the previously defined components.
$appgw = New-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Location 'West US' -BackendAddressPools $pool -Probes $probe -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku
Добавьте зонд в существующий шлюз приложений
Следующий фрагмент кода добавляет пробу в имеющийся шлюз приложений.
# Load the application gateway resource into a PowerShell variable by using Get-AzApplicationGateway.
$getgw = Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg
# Create the probe object that will check health at http://contoso.com/path/path.htm
$probe = Add-AzApplicationGatewayProbeConfig -ApplicationGateway $getgw -Name probe01 -Protocol Http -HostName 'contoso.com' -Path '/path/custompath.htm' -Interval 30 -Timeout 120 -UnhealthyThreshold 8
# Set the backend HTTP settings to use the new probe
$getgw = Set-AzApplicationGatewayBackendHttpSettings -ApplicationGateway $getgw -Name $getgw.BackendHttpSettingsCollection.name -Port 80 -Protocol Http -CookieBasedAffinity Disabled -Probe $probe -RequestTimeout 120
# Save the application gateway with the configuration changes
Set-AzApplicationGateway -ApplicationGateway $getgw
Удалить зонд из существующего шлюза приложений
Следующий фрагмент кода удаляет пробу из имеющегося шлюза приложений.
# Load the application gateway resource into a PowerShell variable by using Get-AzApplicationGateway.
$getgw = Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg
# Remove the probe from the application gateway configuration object
$getgw = Remove-AzApplicationGatewayProbeConfig -ApplicationGateway $getgw -Name $getgw.Probes.name
# Set the backend HTTP settings to remove the reference to the probe. The backend http settings now use the default probe
$getgw = Set-AzApplicationGatewayBackendHttpSettings -ApplicationGateway $getgw -Name $getgw.BackendHttpSettingsCollection.name -Port 80 -Protocol http -CookieBasedAffinity Disabled
# Save the application gateway with the configuration changes
Set-AzApplicationGateway -ApplicationGateway $getgw
Получение DNS-имени шлюза приложений
После создания шлюза следует настроить внешний интерфейс для обмена данными. При использовании общедоступного IP-адреса шлюз приложений требует динамически назначаемое имя DNS, что не является удобным. Чтобы гарантировать попадание пользователей на шлюз приложений, можно использовать запись CNAME, чтобы указать общедоступную конечную точку шлюза приложения. Настройка пользовательского имени домена в Azure. Получите информацию о шлюзе приложений и соответствующее IP- или DNS-имя с помощью элемента PublicIPAddress, связанного со шлюзом приложений. DNS-имя шлюза приложений должно использоваться для создания записи CNAME, указывающей двум веб-приложениям на это DNS-имя. Использование записи A не рекомендуется, так как виртуальный IP-адрес может измениться после перезапуска шлюза приложений.
Get-AzPublicIpAddress -ResourceGroupName appgw-RG -Name publicIP01
Name : publicIP01
ResourceGroupName : appgw-RG
Location : westus
Id : /subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/publicIPAddresses/publicIP01
Etag : W/"00000d5b-54ed-4907-bae8-99bd5766d0e5"
ResourceGuid : 00000000-0000-0000-0000-000000000000
ProvisioningState : Succeeded
Tags :
PublicIpAllocationMethod : Dynamic
IpAddress : xx.xx.xxx.xx
PublicIpAddressVersion : IPv4
IdleTimeoutInMinutes : 4
IpConfiguration : {
"Id": "/subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/applicationGateways/appgwtest/frontendIP
Configurations/frontend1"
}
DnsSettings : {
"Fqdn": "00000000-0000-xxxx-xxxx-xxxxxxxxxxxx.cloudapp.net"
}
Следующие шаги
Сведения о настройке разгрузки TLS см. здесь.