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


Создание шлюза приложений с перенаправлением на основе URL-пути при помощи Azure PowerShell

Для настройки правил маршрутизации на основе URL-адресов при создании шлюза приложений можно использовать Azure PowerShell. В этом руководстве мы создадим внутренние пулы с использованием масштабируемых наборов виртуальных машин. Затем вы создаете правила маршрутизации URL-адресов, которые перенаправляют веб-трафик в соответствующий внутренний пул на основе пути URL-адреса запроса. Azure PowerShell можно использовать для настройки расширенных правил маршрутизации на основе URL-адресов при создании шлюза приложений.

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

В этом руководстве вы узнаете, как:

  • Настройка сетевой инфраструктуры
  • Создание шлюза приложений с маршрутизацией по пути
  • Добавление прослушивателей и правил маршрутизации для перенаправления URL-адресов
  • Создание масштабируемых наборов виртуальных машин для серверных пулов.
  • Тестирование функций маршрутизации и перенаправления шлюза приложений

Ниже приведен пример трафика сайта. Трафик поступает из портов 8080 и 8081 и перенаправляется в те же внутренние пулы.

Схема архитектуры маршрутизации и перенаправления URL-адресов.

Предпосылки

При необходимости эти инструкции можно выполнить с помощью Azure CLI.

Прежде чем приступить к работе с этим руководством, убедитесь, что у вас есть следующие сведения:

  • Активная подписка Azure. Создайте бесплатную учетную запись, если у вас нет учетной записи .
  • Модуль Azure PowerShell версии 5.4.1 или более поздней версии, установленный локально или доступ к Azure Cloud Shell
  • Разрешения участника или владельца в целевой подписке Azure
  • Базовое понимание концепций шлюза приложений и скриптов PowerShell

Примечание.

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

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Снимок экрана, показывающий пример функции «Попробовать» для Azure Cloud Shell.
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Снимок экрана: кнопка

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

Если вы решили установить и использовать PowerShell локально, для этого руководства требуется модуль Azure PowerShell версии 5.4.1 или более поздней. Чтобы узнать версию, выполните команду Get-Module -ListAvailable Az. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При использовании PowerShell на локальном компьютере также нужно запустить Connect-AzAccount, чтобы создать подключение к Azure.

Создать группу ресурсов

Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими. Для создания группы ресурсов Azure с использованием New-AzResourceGroup.

# Define variables for consistent naming and easier management
$resourceGroupName = "myResourceGroupAG"
$location = "eastus"

# Create the resource group
New-AzResourceGroup -Name $resourceGroupName -Location $location

# Verify the resource group creation
Write-Output "Resource group '$resourceGroupName' created successfully in '$location'"

Создание сетевых ресурсов

Создайте конфигурации подсетей myBackendSubnet и myAGSubnet с помощью New-AzVirtualNetworkSubnetConfig. Создайте виртуальную сеть, названную myVNet, используя командлет New-AzVirtualNetwork с конфигурациями подсетей. Наконец, создайте общедоступный IP-адрес с именем myAGPublicIPAddress с помощью New-AzPublicIpAddress. Эти ресурсы обеспечивают сетевое подключение к шлюзу приложений и связанным с ним ресурсам.

Это важно

Подсеть шлюза приложений (myAGSubnet) может содержать только шлюзы приложений. В этой подсети не разрешены другие ресурсы. Создайте конфигурации подсетей myBackendSubnet и myAGSubnet с помощью New-AzVirtualNetworkSubnetConfig. Шлюз приложений требует выделенной подсети с минимальной /24 CIDR для правильной работы и будущего масштабирования. Создайте виртуальную сеть, названную myVNet, используя командлет New-AzVirtualNetwork с конфигурациями подсетей. Наконец, создайте общедоступный IP-адрес со стандартным номером SKU и статическим выделением для повышения безопасности и производительности с помощью New-AzPublicIpAddress.

# Create backend subnet configuration with appropriate CIDR for scale sets
$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.0.1.0/24

# Create Application Gateway subnet - dedicated subnet required
$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.0.2.0/24

New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $backendSubnetConfig, $agSubnetConfig

New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Dynamic

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

В этом разделе объясняется, как создать ресурсы с поддержкой шлюза приложений и сам шлюз приложений. Вы создадите следующие ресурсы:

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

Создание IP-конфигураций и интерфейсного порта

Свяжите созданную ранее подсеть myAGSubnet со шлюзом приложений, используя командлет New-AzApplicationGatewayIPConfiguration. Назначьте шлюзу приложений адрес myAGPublicIPAddress с помощью командлета New-AzApplicationGatewayFrontendIPConfig. Затем создайте HTTP-порт с помощью New-AzApplicationGatewayFrontendPort.

# Get the virtual network and subnet references
$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Name myVNet

$subnet=$vnet.Subnets[0]

# Get the public IP address
$pip = Get-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Name myAGPublicIPAddress

# Create IP configuration for the Application Gateway
$gipconfig = New-AzApplicationGatewayIPConfiguration `
  -Name myAGIPConfig `
  -Subnet $subnet

# Create frontend IP configuration
$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
  -Name myAGFrontendIPConfig `
  -PublicIPAddress $pip

# Create frontend port for HTTP traffic
$frontendport = New-AzApplicationGatewayFrontendPort `
  -Name myFrontendPort `
  -Port 80

Write-Output "Application Gateway IP configurations created successfully"

Создание пула по умолчанию и настройка параметров

Создайте для шлюза приложений серверный пул по умолчанию с именем appGatewayBackendPool с помощью командлета New-AzApplicationGatewayBackendAddressPool. Настройте параметры для серверного пула, используя командлет New-AzApplicationGatewayBackendHttpSettings.

# Create default backend pool
$defaultPool = New-AzApplicationGatewayBackendAddressPool `
  -Name appGatewayBackendPool

# Create backend HTTP settings with optimized configuration
$poolSettings = New-AzApplicationGatewayBackendHttpSettings `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 120

Создайте прослушиватель по умолчанию и правило

Прослушиватель требуется, чтобы шлюз приложений мог направлять трафик соответствующим образом в серверные пулы. В этом руководстве описано, как создать несколько прослушивателей для различных сценариев маршрутизации. Первый базовый слушатель ожидает трафик с корневого URL-адреса. Другие прослушиватели ожидают трафик по определенным URL-путям, таким как http://203.0.113.1:8080/images/ или http://203.0.113.1:8081/video/.

Создайте прослушиватель с именем defaultListener, используя командлет New-AzApplicationGatewayHttpListener с конфигурацией фронтенда и портом фронтенда, которые вы создали ранее. Правило требуется для того, чтобы указать прослушивателю, какой внутренний пул использовать для входящего трафика. Создайте базовое правило с именем rule1 с помощью командлета PowerShell New-AzApplicationGatewayRequestRoutingRule.

# Create default HTTP listener
$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name defaultListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport

# Create basic routing rule that directs traffic to default pool
$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -HttpListener $defaultlistener `
  -BackendAddressPool $defaultPool `
  -BackendHttpSettings $poolSettings `
  -Priority 100

Write-Output "Default listener and routing rule created successfully"

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

Теперь, когда вы создали необходимые вспомогательные ресурсы, укажите параметры для шлюза приложений myAppGateway с помощью командлета New-AzApplicationGatewaySku, а затем создайте шлюз с помощью командлета New-AzApplicationGateway.

# Create SKU configuration for Application Gateway v2
$sku = New-AzApplicationGatewaySku `
  -Name Standard_Medium `
  -Tier Standard `
  -Capacity 2

New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $defaultPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku

Добавление серверных пулов и портов

Серверные пулы можно добавить в шлюз приложений с помощью Add-AzApplicationGatewayBackendAddressPool. В этом примере создаются изображенияBackendPool и видеоBackendPool для маршрутизации определенных типов контента. Вы добавляете интерфейсные порты для пулов с помощью Add-AzApplicationGatewayFrontendPort. Отправьте изменения в шлюз приложений с помощью Set-AzApplicationGateway.

# Get the current Application Gateway configuration
$appgw = Get-AzApplicationGateway `
  -ResourceGroupName myResourceGroupAG `
  -Name myAppGateway

# Add specialized backend pools for different content types
Add-AzApplicationGatewayBackendAddressPool `
  -ApplicationGateway $appgw `
  -Name imagesBackendPool

Add-AzApplicationGatewayBackendAddressPool `
  -ApplicationGateway $appgw `
  -Name videoBackendPool

# Add frontend ports for specialized listeners
Add-AzApplicationGatewayFrontendPort `
  -ApplicationGateway $appgw `
  -Name bport `
  -Port 8080

Add-AzApplicationGatewayFrontendPort `
  -ApplicationGateway $appgw `
  -Name rport `
  -Port 8081

# Apply the configuration changes
Set-AzApplicationGateway -ApplicationGateway $appgw

Добавление прослушивателей и правил

Добавление прослушивателей

Добавьте прослушиватели с именами backendListener и redirectedListener, которые необходимы для маршрутизации трафика с использованием командлета Add-AzApplicationGatewayHttpListener.

# Get the current Application Gateway configuration
$appgw = Get-AzApplicationGateway `
  -ResourceGroupName myResourceGroupAG `
  -Name myAppGateway

# Get frontend port references
$backendPort = Get-AzApplicationGatewayFrontendPort `
  -ApplicationGateway $appgw `
  -Name bport

$redirectPort = Get-AzApplicationGatewayFrontendPort `
  -ApplicationGateway $appgw `
  -Name rport

# Get frontend IP configuration
$fipconfig = Get-AzApplicationGatewayFrontendIPConfig `
  -ApplicationGateway $appgw

# Add listeners for different ports
Add-AzApplicationGatewayHttpListener `
  -ApplicationGateway $appgw `
  -Name backendListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $backendPort

Add-AzApplicationGatewayHttpListener `
  -ApplicationGateway $appgw `
  -Name redirectedListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $redirectPort

# Apply the configuration changes
Set-AzApplicationGateway -ApplicationGateway $appgw

Добавьте сопоставление URL-путей по умолчанию

Сопоставления URL-путей гарантируют, что запросы с определенных URL-адресов маршрутизируются в определенные бекенд-пулы. Вы можете создать карты ПУТИ URL с именем imagePathRule и videoPathRule с помощью New-AzApplicationGatewayPathRuleConfig и Add-AzApplicationGatewayUrlPathMapConfig.

# Get the current Application Gateway configuration
$appgw = Get-AzApplicationGateway `
  -ResourceGroupName myResourceGroupAG `
  -Name myAppGateway

# Get backend HTTP settings
$poolSettings = Get-AzApplicationGatewayBackendHttpSettings `
  -ApplicationGateway $appgw `
  -Name myPoolSettings

# Get backend address pools
$imagePool = Get-AzApplicationGatewayBackendAddressPool `
  -ApplicationGateway $appgw `
  -Name imagesBackendPool

$videoPool = Get-AzApplicationGatewayBackendAddressPool `
  -ApplicationGateway $appgw `
  -Name videoBackendPool

$defaultPool = Get-AzApplicationGatewayBackendAddressPool `
  -ApplicationGateway $appgw `
  -Name appGatewayBackendPool

# Create path rules for different content types
$imagePathRule = New-AzApplicationGatewayPathRuleConfig `
  -Name imagePathRule `
  -Paths "/images/*" `
  -BackendAddressPool $imagePool `
  -BackendHttpSettings $poolSettings

$videoPathRule = New-AzApplicationGatewayPathRuleConfig `
  -Name videoPathRule `
  -Paths "/video/*" `
  -BackendAddressPool $videoPool `
  -BackendHttpSettings $poolSettings

# Add URL path map configuration
Add-AzApplicationGatewayUrlPathMapConfig `
  -ApplicationGateway $appgw `
  -Name urlpathmap `
  -PathRules $imagePathRule, $videoPathRule `
  -DefaultBackendAddressPool $defaultPool `
  -DefaultBackendHttpSettings $poolSettings

# Apply the configuration changes
Set-AzApplicationGateway -ApplicationGateway $appgw

Добавление конфигурации перенаправления

Вы можете настроить перенаправление для прослушивателя с помощью командлета PowerShell Add-AzApplicationGatewayRedirectConfiguration.

# Get the current Application Gateway configuration
$appgw = Get-AzApplicationGateway `
  -ResourceGroupName $resourceGroupName `
  -Name myAppGateway

# Get the target listener for redirection
$backendListener = Get-AzApplicationGatewayHttpListener `
  -ApplicationGateway $appgw `
  -Name backendListener

# Add redirection configuration with query string and path preservation
$redirectConfig = Add-AzApplicationGatewayRedirectConfiguration `
  -ApplicationGateway $appgw `
  -Name redirectConfig `
  -RedirectType Found `
  -TargetListener $backendListener `
  -IncludePath $true `
  -IncludeQueryString $true

# Apply the configuration changes
Set-AzApplicationGateway -ApplicationGateway $appgw

Write-Output "Redirection configuration added successfully"
Write-Output "Redirect type: HTTP 302 Found"
Write-Output "Target: backendListener (Port 8080)"
Write-Output "Preserves: Path and Query String"

Добавление сопоставления URL-путей для перенаправления

Создайте отдельную карту пути URL-адреса для сценариев перенаправления. Эта карта будет обрабатывать трафик через порт 8081 и перенаправлять определенные пути к соответствующему прослушивателю через порт 8080.

# Get the current Application Gateway configuration
$appgw = Get-AzApplicationGateway `
  -ResourceGroupName $resourceGroupName `
  -Name myAppGateway

# Get references to existing configurations
$poolSettings = Get-AzApplicationGatewayBackendHttpSettings `
  -ApplicationGateway $appgw `
  -Name myPoolSettings

$defaultPool = Get-AzApplicationGatewayBackendAddressPool `
  -ApplicationGateway $appgw `
  -Name appGatewayBackendPool

$redirectConfig = Get-AzApplicationGatewayRedirectConfiguration `
  -ApplicationGateway $appgw `
  -Name redirectConfig

# Create path rule for redirection - images traffic will be redirected
$redirectPathRule = New-AzApplicationGatewayPathRuleConfig `
  -Name redirectPathRule `
  -Paths "/images/*" `
  -RedirectConfiguration $redirectConfig

# Add redirection path map configuration
Add-AzApplicationGatewayUrlPathMapConfig `
  -ApplicationGateway $appgw `
  -Name redirectpathmap `
  -PathRules $redirectPathRule `
  -DefaultBackendAddressPool $defaultPool `
  -DefaultBackendHttpSettings $poolSettings

# Apply the configuration changes
Set-AzApplicationGateway -ApplicationGateway $appgw

Write-Output "Redirection URL path map added successfully"
Write-Output "Redirection rule: /images/* on port 8081 -> port 8080"

Добавление правил маршрутизации

Правила маршрутизации связывают карты URL-адресов с прослушивателями, которые вы создали. Вы можете добавить правила с именами defaultRule и redirectedRule, используя командлет Add-AzApplicationGatewayRequestRoutingRule.

$appgw = Get-AzApplicationGateway `
  -ResourceGroupName myResourceGroupAG `
  -Name myAppGateway

$backendlistener = Get-AzApplicationGatewayHttpListener `
  -ApplicationGateway $appgw `
  -Name backendListener

$redirectlistener = Get-AzApplicationGatewayHttpListener `
  -ApplicationGateway $appgw `
  -Name redirectedListener

$urlPathMap = Get-AzApplicationGatewayUrlPathMapConfig `
  -ApplicationGateway $appgw `
  -Name urlpathmap

$redirectPathMap = Get-AzApplicationGatewayUrlPathMapConfig `
  -ApplicationGateway $appgw `
  -Name redirectpathmap

Add-AzApplicationGatewayRequestRoutingRule `
  -ApplicationGateway $appgw `
  -Name defaultRule `
  -RuleType PathBasedRouting `
  -HttpListener $backendlistener `
  -UrlPathMap $urlPathMap

Add-AzApplicationGatewayRequestRoutingRule `
  -ApplicationGateway $appgw `
  -Name redirectedRule `
  -RuleType PathBasedRouting `
  -HttpListener $redirectlistener `
  -UrlPathMap $redirectPathMap

Set-AzApplicationGateway -ApplicationGateway $appgw

Создание масштабируемых наборов виртуальных машин

В этом примере вы создадите три масштабируемых набора виртуальных машин, которые поддерживают три созданных внутренних пула. Наборы масштабирования называются myvmss1, myvmss2 и myvmss3. Каждый масштабируемый набор содержит два экземпляра виртуальной машины, на которых устанавливается IIS. Масштабируемый набор назначается серверному пулу при настройке параметров IP-адреса.

Это важно

Замените <username> и <password> на свои значения перед запуском скрипта. Используйте надежный пароль, соответствующий требованиям безопасности Azure. Примечание по безопасности: Замените <username> и <password> на безопасные учетные данные. Рекомендуется использовать Azure Key Vault для управления учетными данными в рабочих сценариях.

# Get network and Application Gateway references
$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Name myVNet

$appgw = Get-AzApplicationGateway `
  -ResourceGroupName myResourceGroupAG `
  -Name myAppGateway

# Get backend pool references
$backendPool = Get-AzApplicationGatewayBackendAddressPool `
  -Name appGatewayBackendPool `
  -ApplicationGateway $appgw

$imagesPool = Get-AzApplicationGatewayBackendAddressPool `
  -Name imagesBackendPool `
  -ApplicationGateway $appgw

$videoPool = Get-AzApplicationGatewayBackendAddressPool `
  -Name videoBackendPool `
  -ApplicationGateway $appgw

# Create three scale sets with improved configuration
for ($i=1; $i -le 3; $i++)
{
  if ($i -eq 1)
  {
     $poolId = $backendPool.Id
  }
  if ($i -eq 2) 
  {
    $poolId = $imagesPool.Id
  }
  if ($i -eq 3)
  {
    $poolId = $videoPool.Id
  }

  $ipConfig = New-AzVmssIpConfig `
    -Name myVmssIPConfig$i `
    -SubnetId $vnet.Subnets[1].Id `
    -ApplicationGatewayBackendAddressPoolsId $poolId

  # Create scale set configuration with modern VM size and settings
  $vmssConfig = New-AzVmssConfig `
    -Location eastus `
    -SkuCapacity 2 `
    -SkuName Standard_DS2 `
    -UpgradePolicyMode Automatic

  # Configure storage profile with Windows Server 2022
  Set-AzVmssStorageProfile $vmssConfig `
    -ImageReferencePublisher MicrosoftWindowsServer `
    -ImageReferenceOffer WindowsServer `
    -ImageReferenceSku 2016-Datacenter `
    -ImageReferenceVersion latest `
    -OsDiskCreateOption FromImage

  Set-AzVmssOsProfile $vmssConfig `
    -AdminUsername <username> `
    -AdminPassword "<password>" `
    -ComputerNamePrefix myvmss$i

  # Add network interface configuration
  Add-AzVmssNetworkInterfaceConfiguration `
    -VirtualMachineScaleSet $vmssConfig `
    -Name myVmssNetConfig$i `
    -Primary $true `
    -IPConfiguration $ipConfig

  New-AzVmss `
    -ResourceGroupName myResourceGroupAG `
    -Name myvmss$i `
    -VirtualMachineScaleSet $vmssConfig

  Write-Output "Virtual Machine Scale Set myvmss$i created successfully"
}

Write-Output "All Virtual Machine Scale Sets created successfully"

Установить IIS

Следующий сценарий устанавливает службы IIS на виртуальные машины в каждом масштабируемом наборе и настраивает их для отображения разного содержимого в зависимости от того, какой серверный пул они служат.

$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1"); 
  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }

# Install IIS on all scale sets
for ($i=1; $i -le 3; $i++)
{
  $vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss$i

  Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
    -Name "customScript" `
    -Publisher "Microsoft.Compute" `
    -Type "CustomScriptExtension" `
    -TypeHandlerVersion 1.8 `
    -Setting $publicSettings

  Update-AzVmss `
    -ResourceGroupName myResourceGroupAG `
    -Name myvmss$i `
    -VirtualMachineScaleSet $vmss
}

Тестирование шлюза приложений

Хотя служба IIS не требуется для создания шлюза приложений, вы установили его в этом руководстве, чтобы убедиться, что Azure успешно создал шлюз приложений. Используйте IIS для тестирования шлюза приложений.

  1. Запустите Get-AzPublicIPAddress , чтобы получить общедоступный IP-адрес шлюза приложений:

    Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
    
  2. Скопируйте общедоступный IP-адрес и вставьте его в адресную строку браузера. Рассмотрим пример.

    • http://203.0.113.1 (базовый URL-адрес)
    • http://203.0.113.1:8080/images/test.htm (путь к изображениям)
    • http://203.0.113.1:8080/video/test.htm (путь к видеофайлу)
    • http://203.0.113.1:8081/images/test.htm (тест перенаправления)

Снимок экрана: страница приветствия IIS по умолчанию при тестировании базового URL-адреса шлюза приложений.

Измените URL-адрес, заменив http://<ip-address>:8080/images/test.htm на ваш IP-адрес в <ip-address>, и вы должны увидеть на экране примерно следующий пример:

Снимок экрана: страница тестирования серверного пула изображений при доступе к пути /images в шлюзе приложений.

Измените URL-адрес, заменив http://<ip-address>:8080/video/test.htm на ваш IP-адрес в <ip-address>, и вы должны увидеть на экране примерно следующий пример:

Снимок экрана: страница тестирования серверного пула видео при доступе к пути /video на шлюзе приложений.

Теперь измените URL-адрес на http://<ip-address>:8081/images/test.htm, заменив IP-адрес <ip-address>, и вы должны увидеть, что трафик перенаправляется обратно в адресную группу серверов изображений по адресу http://<ip-address>:8080/images.

Отслеживание производительности

Отслеживайте ключевые метрики шлюза приложений для оптимальной производительности:

  • Количество запросов: общее количество обработанных запросов
  • Время отклика: среднее время отклика для запросов
  • Число неработоспособных узлов: количество неработоспособных внутренних серверов
  • Пропускная способность: скорость передачи данных через шлюз приложений

Очистка ресурсов

Если группа ресурсов, шлюз приложения и все связанные с ними ресурсы вам больше не нужны, удалите их с помощью командлета Remove-AzResourceGroup.

Remove-AzResourceGroup -Name myResourceGroupAG

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

Теперь, когда вы узнали о перенаправлении на основе URL-путей с помощью шлюза приложений, изучите следующие продвинутые сценарии:

Дополнительные ресурсы