Bagikan melalui


Pelajari cara membuat application gateway yang menghosting beberapa situs web menggunakan Azure PowerShell

Anda dapat menggunakan Azure PowerShell untuk mengonfigurasi hosting beberapa situs web saat membuat gateway aplikasi. Di artikel ini, Anda akan menentukan kumpulan alamat backend menggunakan set skala mesin virtual. Kemudian, Anda akan mengonfigurasi listener dan aturan berdasarkan domain yang Anda punya untuk memastikan lalu lintas web masuk ke server yang tepat di dalam kumpulan. Artikel ini mengasumsikan bahwa Anda memiliki beberapa domain dan menggunakan contoh www.contoso.com dan www.fabrikam.com.

Dalam artikel ini, Anda akan mempelajari cara:

  • Siapkan jaringan
  • Buatlah gateway aplikasi
  • Membuat listener ujung belakang
  • Membuat aturan routing
  • Membuat set skala mesin virtual dengan kolam backend
  • Membuat data CNAME di domain Anda

Gateway Aplikasi Multi-situs

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

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, artikel ini memerlukan modul Azure PowerShell versi 1.0.0 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 Login-AzAccount untuk membuat koneksi dengan Azure.

Buat grup sumber daya

Grup sumber daya adalah wadah logis di mana sumber daya Azure ditempatkan dan dikelola. Buat grup sumber daya Azure menggunakan New-AzResourceGroup.

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Membuat sumber daya jaringan

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

$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.0.1.0/24

$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.0.2.0/24

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

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

Buatlah gateway aplikasi

Membuat konfigurasi IP dan port ujung depan

Kaitkan subnet yang sebelumnya Anda buat ke application gateway menggunakan New-AzApplicationGatewayIPConfiguration. Tetapkan alamat IP publik ke application gateway menggunakan New-AzApplicationGatewayFrontendIPConfig.

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Name myVNet

$subnet=$vnet.Subnets[0]

$gipconfig = New-AzApplicationGatewayIPConfiguration `
  -Name myAGIPConfig `
  -Subnet $subnet

$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
  -Name myAGFrontendIPConfig `
  -PublicIPAddress $pip

$frontendport = New-AzApplicationGatewayFrontendPort `
  -Name myFrontendPort `
  -Port 80

Buat kolam backend dan pengaturannya

Buatlah kumpulan alamat ujung belakang pertama untuk application gateway menggunakan New-AzApplicationGatewayBackendAddressPool. Konfigurasikan pengaturan untuk kumpulan backend menggunakan New-AzApplicationGatewayBackendHttpSettings.

$contosoPool = New-AzApplicationGatewayBackendAddressPool `
  -Name contosoPool

$fabrikamPool = New-AzApplicationGatewayBackendAddressPool `
  -Name fabrikamPool

$poolSettings = New-AzApplicationGatewayBackendHttpSettings `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 120

Membuat para pendengar dan aturan

Pendengar diharuskan untuk mengaktifkan gerbang aplikasi agar dapat merutekan lalu lintas dengan benar ke kumpulan alamat backend. Dalam artikel ini, Anda membuat dua listener untuk dua domain Anda. Listener dibuat untuk domain contoso.com dan fabrikam.com.

Buat listener pertama menggunakan New-AzApplicationGatewayHttpListener dengan konfigurasi antarmuka utama dan port antarmuka utama yang sudah Anda buat sebelumnya. Sebuah aturan diperlukan agar pendengar mengetahui pool server backend mana yang harus digunakan untuk lalu lintas masuk. Buat aturan dasar bernama contosoRule menggunakan New-AzApplicationGatewayRequestRoutingRule.

Catatan

Dengan Application Gateway atau WAF v2 SKU, Anda dapat mengonfigurasi hingga 5 nama host per listener dan Anda dapat menggunakan karakter wildcard untuk nama host. Lihat nama host wildcard di listener untuk informasi selengkapnya. Untuk menggunakan beberapa nama host dan karakter wildcard pada listener menggunakan Azure PowerShell, Anda harus menggunakan -HostNames alih-alih -HostName. Dengan HostName, Anda dapat menyebutkan hingga 5 nama host sebagai nilai yang dipisahkan koma. Misalnya: -HostNames "*.contoso.com","*.fabrikam.com"

$contosolistener = New-AzApplicationGatewayHttpListener `
  -Name contosoListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport `
  -HostName "www.contoso.com"

$fabrikamlistener = New-AzApplicationGatewayHttpListener `
  -Name fabrikamListener `
  -Protocol Http `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport `
  -HostName "www.fabrikam.com"

$contosoRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name contosoRule `
  -RuleType Basic `
  -HttpListener $contosoListener `
  -BackendAddressPool $contosoPool `
  -BackendHttpSettings $poolSettings

$fabrikamRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name fabrikamRule `
  -RuleType Basic `
  -HttpListener $fabrikamListener `
  -BackendAddressPool $fabrikamPool `
  -BackendHttpSettings $poolSettings

Tambahkan prioritas ke aturan perutean

$contosoRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name wccontosoRule `
  -RuleType Basic `
  -Priority 200 `
  -HttpListener $wccontosoListener `
  -BackendAddressPool $wccontosoPool `
  -BackendHttpSettings $poolSettings

$fabrikamRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name shopcontosoRule `
  -RuleType Basic `
  -Priority 100 `
  -HttpListener $shopcontosoListener `
  -BackendAddressPool $shopcontosoPool `
  -BackendHttpSettings $poolSettings

Buat gerbang aplikasi

Setelah sumber daya pendukung yang diperlukan dibuat, tentukan parameter untuk application gateway menggunakan New-AzApplicationGatewaySku, kemudian buatlah menggunakan New-AzApplicationGateway.

$sku = New-AzApplicationGatewaySku `
  -Name Standard_Medium `
  -Tier Standard `
  -Capacity 2

$appgw = New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $contosoPool, $fabrikamPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $contosoListener, $fabrikamListener `
  -RequestRoutingRules $contosoRule, $fabrikamRule `
  -Sku $sku

Membuat set skala mesin virtual

Dalam contoh ini, Anda membuat dua set skala mesin virtual yang mendukung dua pool backend yang Anda buat. Set skala yang Anda buat bernama myvmss1, dan myvmss2. Setiap set skala berisi dua instans komputer virtual di tempat Anda menginstal IIS. Anda menetapkan rangkaian skala ke kumpulan backend saat mengonfigurasi pengaturan IP.

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Name myVNet

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

$contosoPool = Get-AzApplicationGatewayBackendAddressPool `
  -Name contosoPool `
  -ApplicationGateway $appgw

$fabrikamPool = Get-AzApplicationGatewayBackendAddressPool `
  -Name fabrikamPool `
  -ApplicationGateway $appgw

for ($i=1; $i -le 2; $i++)
{
  if ($i -eq 1) 
  {
    $poolId = $contosoPool.Id
  }
  if ($i -eq 2)
  {
    $poolId = $fabrikamPool.Id
  }

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

  $vmssConfig = New-AzVmssConfig `
    -Location eastus `
    -SkuCapacity 2 `
    -SkuName Standard_DS2 `
    -UpgradePolicyMode Automatic

  Set-AzVmssStorageProfile $vmssConfig `
    -ImageReferencePublisher MicrosoftWindowsServer `
    -ImageReferenceOffer WindowsServer `
    -ImageReferenceSku 2016-Datacenter `
    -ImageReferenceVersion latest `
    -OsDiskCreateOption FromImage

  Set-AzVmssOsProfile $vmssConfig `
    -AdminUsername azureuser `
    -AdminPassword "Azure123456!" `
    -ComputerNamePrefix myvmss$i

  Add-AzVmssNetworkInterfaceConfiguration `
    -VirtualMachineScaleSet $vmssConfig `
    -Name myVmssNetConfig$i `
    -Primary $true `
    -IPConfiguration $ipConfig

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

Instal 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" }

for ($i=1; $i -le 2; $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
}

Membuat data CNAME di domain Anda

Setelah gateway aplikasi dibuat dengan alamat IP publiknya, Anda bisa mendapatkan alamat DNS dan menggunakannya untuk membuat data CNAME di domain Anda. Gunakan Get-AzPublicIPAddress untuk mendapatkan alamat DNS application gateway. Salin nilai fqdn dari DNSSettings dan gunakan sebagai nilai catatan CNAME yang Anda buat. Penggunaan A-record tidak disarankan karena VIP dapat berubah ketika application gateway dihidupkan ulang di SKU V1.

Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

Uji gateway aplikasi

Masukkan nama domain Anda ke bilah alamat browser. Misalnya http://www.contoso.com.

Uji situs contoso di gateway aplikasi

Ubah alamat tadi ke domain Anda yang lain dan Anda akan menemukan sesuatu seperti contoh berikut:

Menguji situs Fabrikam pada gateway aplikasi

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

Membuat gateway aplikasi dengan aturan perutean berbasis jalur URL