Vytvoření aplikační brány v Azure PowerShellu, která hostuje více webů
Azure PowerShell můžete použít ke konfiguraci hostování více webů při vytváření aplikační brány. V tomto článku definujete fondy back-endových adres pomocí škálovacích sad virtuálních počítačů. Pak na základě domén, které vám patří, nakonfigurujete naslouchací procesy a pravidla, aby se webový provoz přesměroval na příslušné servery ve fondech. Tento článek předpokládá, že vlastníte více domén a používáte příklady www.contoso.com
a www.fabrikam.com
.
V tomto článku získáte informace o těchto tématech:
- Nastavit síť
- Vytvoření brány Application Gateway
- Vytvořit back-endové naslouchací procesy
- Vytvoření pravidel směrování
- Vytvořit z back-endových fondů škálovací sadu virtuálních počítačů
- Vytvořit v doméně záznam CNAME
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Azure Cloud Shell
Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.
Spuštění služby Azure Cloud Shell:
Možnost | Příklad nebo odkaz |
---|---|
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. | |
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. | |
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. |
Použití Azure Cloud Shellu:
Spusťte Cloud Shell.
Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.
Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.
Stisknutím klávesy Enter spusťte kód nebo příkaz.
Pokud se rozhodnete nainstalovat a používat PowerShell místně, tento článek vyžaduje modul Azure PowerShell verze 1.0.0 nebo novější. Pokud chcete zjistit verzi, spusťte příkaz Get-Module -ListAvailable Az
. Pokud potřebujete upgrade, přečtěte si téma Instalace modulu Azure PowerShell. Pokud používáte PowerShell místně, musíte také spustit Login-AzAccount
, abyste vytvořili připojení k Azure.
Vytvoření skupiny zdrojů
Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Vytvořte skupinu prostředků Azure pomocí rutiny New-AzResourceGroup.
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
Vytvoření síťových prostředků
Vytvořte konfigurace podsítě pomocí rutiny New-AzVirtualNetworkSubnetConfig. Vytvořte virtuální síť pomocí rutiny New-AzVirtualNetwork s konfiguracemi podsítě. Nakonec vytvořte veřejnou IP adresu pomocí Rutiny New-AzPublicIpAddress. Pomocí těchto prostředků se bude poskytovat síťové připojení k bráně Application Gateway a jejím přidruženým prostředkům.
$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
Vytvoření brány Application Gateway
Vytvoření konfigurací IP adres a front-endového portu
Přidružte podsíť, kterou jste dříve vytvořili, ke službě Application Gateway pomocí Rutiny New-AzApplicationGatewayIPConfiguration. Přiřaďte veřejnou IP adresu aplikační bráně pomocí Rutiny 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
Vytvoření back-endového fondu a nastavení
Vytvořte první back-endový fond adres pro aplikační bránu pomocí New-AzApplicationGatewayBackendAddressPool. Nakonfigurujte nastavení fondu pomocí Rutiny 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
Vytvoření naslouchacích procesů a pravidel
Naslouchací procesy jsou potřeba k tomu, aby aplikační brána správně směrovala provoz na back-endové fondy adres. V tomto článku vytvoříte dva naslouchací procesy pro dvě domény. Naslouchací procesy se vytvářejí pro domény contoso.com a fabrikam.com .
Vytvořte první naslouchací proces pomocí rutiny New-AzApplicationGatewayHttpListener s konfigurací front-endu a front-endovým portem, který jste vytvořili dříve. Pravidlo je potřeba k tomu, aby naslouchací proces poznal, který back-endový fond má použít pro příchozí provoz. Vytvořte základní pravidlo s názvem contosoRule pomocí Rutiny New-AzApplicationGatewayRequestRoutingRule.
Poznámka:
S skladovou kartou Application Gateway nebo WAF v2 můžete také nakonfigurovat až 5 názvů hostitelů na naslouchací proces a v názvu hostitele můžete použít zástupné znaky. Další informace najdete v názvech hostitelů se zástupnými cardy v naslouchacím procesu .
Pokud chcete použít více názvů hostitelů a zástupných znaků v naslouchacím procesu pomocí Azure PowerShellu, musíte místo toho použít -HostNames
-HostName
. Pomocí názvů hostitelů můžete jako hodnoty oddělené čárkami zmínit až 5 názvů hostitelů. Například -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
Přidání priority do pravidel směrování
$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
Vytvoření služby Application Gateway
Teď, když jste vytvořili potřebné podpůrné prostředky, zadejte parametry pro aplikační bránu pomocí New-AzApplicationGatewaySku a pak ho vytvořte pomocí Rutiny 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
Vytvoření škálovacích sad virtuálních počítačů
V tomto příkladu vytvoříte dvě škálovací sady virtuálních počítačů, které podporují dva vytvořené back-endové fondy. Vytvořené škálovací sady se jmenují myvmss1 a myvmss2. Každá škálovací sada obsahuje dvě instance virtuálních počítačů, na které nainstalujete službu IIS. Škálovací sadu přiřadíte back-endovému fondu při konfiguraci nastavení IP adres.
$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
}
instalace 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
}
Vytvoření názvu CNAME v doméně
Jakmile vytvoříte aplikační bránu s veřejnou IP adresou, získáte adresu DNS, kterou můžete použít k vytvoření záznamu CNAME ve své doméně. Pomocí rutiny Get-AzPublicIPAddress můžete získat adresu DNS aplikační brány. Zkopírujte hodnotu fqdn z objektu DNESettings a použijte ji jako hodnotu vytvořeného záznamu CNAME. Použití záznamů A se nedoporučuje, protože virtuální IP adresa se může změnit, když se služba Application Gateway restartuje v SKU V1.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
Otestování aplikační brány
Do adresního řádku prohlížeče zadejte název domény. Například http://www.contoso.com.
Změňte adresu na jinou ze svých domén. Měli byste vidět něco podobného jako v následujícím příkladu:
Vyčištění prostředků
Pokud už ji nepotřebujete, odeberte skupinu prostředků, aplikační bránu a všechny související prostředky pomocí remove-AzResourceGroup.
Remove-AzResourceGroup -Name myResourceGroupAG
Další kroky
Vytvoření aplikační brány s pravidly směrování založenými na cestě URL