Bagikan melalui


Buat gateway aplikasi dengan pengalihan berbasis jalur URL menggunakan Azure PowerShell

Anda dapat menggunakan Azure PowerShell untuk mengonfigurasi aturan perutean berbasis URL saat membuat gateway aplikasi. Dalam tutorial ini, Anda membuat kumpulan backend menggunakan set skala komputer virtual. Anda kemudian membuat aturan perutean URL yang mengalihkan lalu lintas web ke kumpulan backend yang sesuai berdasarkan jalur URL permintaan. Anda dapat menggunakan Azure PowerShell untuk mengonfigurasi aturan perutean berbasis URL tingkat lanjut saat membuat gateway aplikasi.

Tutorial ini mencakup konfigurasi siap produksi termasuk praktik terbaik keamanan, pengoptimalan performa, dan penyiapan pemantauan.

Dalam tutorial ini, Anda akan belajar cara:

  • Menyiapkan infrastruktur jaringan
  • Membuat gateway aplikasi dengan pengarahan berbasis jalur
  • Menambahkan listener dan aturan routing untuk pengalihan URL
  • Buat set skala komputer virtual untuk kumpulan backend
  • Menguji fungsionalitas perutean dan pengalihan gateway aplikasi

Contoh berikut menunjukkan lalu lintas situs yang berasal dari keduanya yakni port 8080 dan 8081 dan diarahkan ke kumpulan backend yang sama:

Diagram arsitektur perutean dan pengalihan URL.

Prasyarat

Anda bisa saja menyelesaikan prosedur ini menggunakan Azure CLI.

Sebelum memulai tutorial ini, pastikan Anda memiliki:

  • Langganan Azure aktif. Buat akun gratis jika Anda tidak memilikinya.
  • Modul Azure PowerShell versi 5.4.1 atau yang lebih baru diinstal secara lokal, atau akses ke Azure Cloud Shell
  • Izin sebagai Kontributor atau Pemilik pada langganan Azure yang dituju
  • Pemahaman dasar tentang konsep Application Gateway dan pembuatan skrip PowerShell

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Azure Cloud Shell

Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini tanpa harus menginstal apa-apa di lingkungan lokal Anda.

Untuk memulai Azure Cloud Shell:

Opsi Contoh/Tautan
Pilih Coba di pojok kanan atas blok kode atau perintah. Memilih Coba tidak otomatis menyalin kode atau perintah ke Cloud Shell. Cuplikan layar yang menunjukkan contoh Try It for Azure Cloud Shell.
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Tombol untuk meluncurkan Azure Cloud Shell.
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Cuplikan layar yang menunjukkan tombol Cloud Shell di portal Azure

Untuk menggunakan Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.

  3. Tempel kode atau perintah ke dalam sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.

  4. Pilih Masukkan untuk menjalankan kode atau perintah.

Jika Anda memilih untuk menginstal dan menggunakan PowerShell secara lokal, tutorial ini memerlukan modul Azure PowerShell versi 5.4.1 atau yang lebih baru. Jalankan Get-Module -ListAvailable Az untuk mencari tahu versinya. Jika Anda perlu peningkatan, lihat Instal modul Azure PowerShell. Jika Anda menjalankan PowerShell secara lokal, Anda juga harus menjalankan Connect-AzAccount untuk membuat koneksi dengan Azure.

Buat grup sumber daya

Grup sumber daya adalah kontainer logis yang disebarkan dan dikelola oleh sumber daya Azure. Buat grup sumber daya Azure menggunakan 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'"

Membuat sumber daya jaringan

Buat konfigurasi subnet untuk myBackendSubnet dan myAGSubnet menggunakan New-AzVirtualNetworkSubnetConfig. Buat jaringan virtual bernama myVNet menggunakan New-AzVirtualNetwork dengan konfigurasi subnet. Terakhir, buat alamat IP publik bernama myAGPublicIPAddress menggunakan New-AzPublicIpAddress. Sumber daya ini menyediakan konektivitas jaringan ke gateway aplikasi dan sumber daya terkait.

Penting

Subnet gateway aplikasi (myAGSubnet) hanya dapat berisi gateway aplikasi. Tidak ada sumber daya lain yang diizinkan dalam subnet ini. Buat konfigurasi subnet untuk myBackendSubnet dan myAGSubnet menggunakan New-AzVirtualNetworkSubnetConfig. Application Gateway memerlukan subnet khusus dengan CIDR minimum /24 untuk operasi yang tepat dan penskalaan di masa mendatang. Buat jaringan virtual bernama myVNet menggunakan New-AzVirtualNetwork dengan konfigurasi subnet. Terakhir, buat alamat IP publik dengan SKU Standar dan alokasi statis untuk meningkatkan keamanan dan performa menggunakan 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

Membuat gateway aplikasi

Di bagian ini, Anda membuat sumber daya yang mendukung gateway aplikasi terlebih dulu, lalu buat gateway aplikasinya. Sumber daya yang Anda buat meliputi:

  • Konfigurasi IP dan port frontend - Menghubungkan subnet yang sudah Anda buat sebelumnya ke gateway aplikasi dan menetapkan port yang digunakan untuk mengaksesnya.
  • Kumpulan default - Semua gateway aplikasi harus memiliki setidaknya satu kumpulan server ujung belakang.
  • Listener dan aturan default - Listener default mendengarkan lalu lintas di port yang ditetapkan dan aturan default mengirim lalu lintas ke kumpulan default.

Membuat konfigurasi IP dan port ujung depan

Kaitkan myAGSubnet yang sebelumnya Anda buat ke gateway aplikasi menggunakan New-AzApplicationGatewayIPConfiguration. Tetapkan myAGPublicIPAddress ke gateway aplikasi menggunakan New-AzApplicationGatewayFrontendIPConfig. Kemudian buat port HTTP menggunakan 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"

Buat kumpulan dan pengaturan default

Buat kumpulan ujung belakang default bernama appGatewayBackendPool untuk gateway aplikasi menggunakan New-AzApplicationGatewayBackendAddressPool. Konfigurasikan pengaturan untuk kumpulan backend menggunakan AzApplicationGatewayBackendHttpSettings-Baru.

# 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

Membuat listener dan aturan default

Pendengar diperlukan untuk mengaktifkan gateway aplikasi agar dapat merutekan lalu lintas dengan tepat ke kumpulan back-end. Dalam tutorial ini, Anda membuat beberapa listener untuk skenario perutean yang berbeda. Pendengar dasar pertama mengharapkan lalu lintas di URL root. Pendengar lain mengharapkan lalu lintas di jalur URL tertentu, seperti http://203.0.113.1:8080/images/ atau http://203.0.113.1:8081/video/.

Buat pendengar bernama defaultListener menggunakan AzApplicationGatewayHttpListener-Baru dengan konfigurasi dan port ujung depan yang sebelumnya Anda buat. Aturan diperlukan agar listener mengetahui kumpulan backend yang akan digunakan untuk lalu lintas yang masuk. Buat aturan dasar bernama rule1 menggunakan 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"

Membuat application gateway

Setelah sumber daya pendukung yang diperlukan dibuat, tentukan parameter untuk gateway aplikasi bernama myAppGateway menggunakan New-AzApplicationGatewaySku, lalu buatlah menggunakan 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

Menambahkan kumpulan backend dan port

Anda dapat menambahkan kumpulan backend ke gateway aplikasi Anda menggunakan Add-AzApplicationGatewayBackendAddressPool. Dalam contoh ini, imagesBackendPool dan videoBackendPool dibuat untuk merutekan jenis konten tertentu. Anda menambahkan port frontend untuk kumpulan menggunakan Add-AzApplicationGatewayFrontendPort. Kirim perubahan ke gateway aplikasi menggunakan 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

Menambahkan pendengar dan aturan

Tambahkan listener

Tambahkan pendengar bernama backendListener dan redirectedListener yang diperlukan untuk merutekan lalu lintas menggunakan Tambahkan-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

Tambahkan peta jalur URL default

Peta jalur URL memastikan URL tertentu dirutekan ke pools backend tertentu. Anda dapat membuat peta jalur URL bernama imagePathRule dan videoPathRule menggunakan New-AzApplicationGatewayPathRuleConfig dan 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

Tambahkan konfigurasi pengalihan

Anda dapat konfigurasikan pengalihan untuk listener menggunakan Tambahkan-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"

Menambahkan peta jalur URL pengalihan

Buat peta jalur URL terpisah untuk skenario pengalihan. Peta ini akan menangani lalu lintas pada port 8081 dan mengalihkan jalur tertentu ke pendengar yang sesuai pada port 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"

Menambahkan aturan perutean

Aturan perutean menghubungkan peta URL dengan pendengar yang dibuat. Anda dapat menambahkan aturan bernama defaultRule dan redirectedRule menggunakan Tambahkan-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

Membuat set skala komputer virtual

Dalam contoh ini, Anda membuat tiga set skala komputer virtual yang mendukung tiga kumpulan ujung belakang yang Anda buat. Set skala diberi nama myvmss1, myvmss2, dan myvmss3. Setiap set skala berisi dua instans komputer virtual di tempat Anda menginstal IIS. Anda menetapkan rangkaian skala ke kumpulan backend saat mengonfigurasi pengaturan IP.

Penting

Ganti <username> dan <password> dengan nilai Anda sendiri sebelum menjalankan skrip. Gunakan kata sandi yang kuat yang memenuhi persyaratan keamanan Azure. Catatan Keamanan: Ganti <username> dan <password> dengan kredensial aman. Pertimbangkan untuk menggunakan Azure Key Vault untuk manajemen kredensial dalam skenario produksi.

# 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"

Instal IIS

Skrip berikut menginstal IIS pada komputer virtual di setiap set skala dan mengonfigurasinya untuk menampilkan konten yang berbeda berdasarkan kumpulan backend mana yang mereka layani.

$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
}

Uji gateway aplikasi

Meskipun IIS tidak diperlukan untuk membuat gateway aplikasi, Anda menginstalnya dalam tutorial ini untuk memverifikasi apakah Azure berhasil membuat gateway aplikasi. Gunakan IIS untuk menguji gateway aplikasi:

  1. Jalankan Get-AzPublicIPAddress untuk mendapatkan alamat IP publik gateway aplikasi:

    Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
    
  2. Salin alamat IP publik, lalu tempelkan ke bilah alamat browser Anda. Contohnya:

    • http://203.0.113.1 (URL dasar)
    • http://203.0.113.1:8080/images/test.htm (jalur gambar)
    • http://203.0.113.1:8080/video/test.htm (jalur video)
    • http://203.0.113.1:8081/images/test.htm (uji pengalihan)

Cuplikan layar memperlihatkan halaman selamat datang IIS default saat menguji URL dasar gateway aplikasi.

Ubah URL menjadi http://<ip-address>:8080/images/test.htm, mengganti alamat IP Anda untuk <ip-address>, dan Anda akan melihat sesuatu seperti contoh berikut:

Cuplikan layar memperlihatkan halaman uji kumpulan backend gambar saat mengakses jalur /images di gateway aplikasi.

Ubah URL menjadi http://<ip-address>:8080/video/test.htm, mengganti alamat IP Anda untuk <ip-address>, dan Anda akan melihat sesuatu seperti contoh berikut:

Cuplikan layar memperlihatkan halaman pengujian kumpulan backend video saat mengakses jalur /video di gateway aplikasi.

Sekarang, ubah URL menjadi http://<ip-address>:8081/images/test.htm, mengganti alamat IP Anda untuk <ip-address>, dan Anda akan melihat lalu lintas dialihkan kembali ke kumpulan backend gambar di http://<ip-address>:8080/images.

Pemantauan performa

Pantau metrik Application Gateway utama untuk performa optimal:

  • Jumlah Permintaan: Jumlah total permintaan yang diproses
  • Waktu Respons: Waktu respons rata-rata untuk permintaan
  • Jumlah Host Tidak Sehat: Jumlah server backend yang tidak sehat
  • Throughput: Laju transfer data melalui Application Gateway

Membersihkan sumber daya

Jika tidak lagi diperlukan, hapus grup sumber daya, gateway aplikasi, dan semua sumber daya terkait menggunakan Remove-AzResourceGroup.

Remove-AzResourceGroup -Name myResourceGroupAG

Langkah berikutnya

Sekarang setelah Anda mempelajari pengalihan berbasis jalur URL dengan Application Gateway, jelajahi skenario lanjutan ini:

Sumber daya lainnya