Több webhelyet üzemeltető alkalmazásátjáró létrehozása az Azure PowerShell használatával
Az Azure PowerShell használatával több webhely üzemeltetését is konfigurálhatja egy application gateway létrehozásakor. Ebben a cikkben a háttércímkészleteket definiálja virtuálisgép-méretezési csoportok használatával. Ezután az Ön tulajdonában lévő tartományok alapján konfigurálhat figyelőket és szabályokat a webes forgalom a készletekben lévő megfelelő kiszolgálókra irányításához. Ez a cikk feltételezi, hogy ön több tartományt birtokol, és példákat és www.fabrikam.com
példákat www.contoso.com
használ.
Ebben a cikkben az alábbiakkal ismerkedhet meg:
- A hálózat beállítása
- Application Gateway létrehozása
- Háttérbeli figyelők létrehozása
- Útválasztási szabályok létrehozása
- Virtuálisgép-méretezési csoportok létrehozása a háttérkészletekkel
- CNAME rekord létrehozása a tartományban
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Azure Cloud Shell
Az Azure által üzemeltetett Azure Cloud Shell egy interaktív felület, amelyet a böngészőből használhat. A Bash vagy a PowerShell segítségével is használhatja a Cloud Shellt az Azure-szolgáltatásokhoz. A Cloud Shell előre telepített parancsaival futtathatja a jelen cikkben szereplő kódot anélkül, hogy bármit telepítenie kellene a helyi környezetben.
Az Azure Cloud Shell indítása:
Lehetőség | Példa/hivatkozás |
---|---|
Válassza a Kipróbálás lehetőséget egy kód vagy parancsblokk jobb felső sarkában. A Kipróbálás lehetőség választása nem másolja automatikusan a kódot vagy a parancsot a Cloud Shellbe. | |
Látogasson el a https://shell.azure.com webhelyre, vagy kattintson a Cloud Shell indítása gombra a böngészőben. | |
Az Azure Portal jobb felső sarkában található menüben kattintson a Cloud Shell gombra. |
Az Azure Cloud Shell használata:
Indítsa el a Cloud Shellt.
A kód vagy parancs másolásához kattintson a Másolás gombra egy kódblokkon (vagy parancsblokkon).
Illessze be a kódot vagy parancsot a Cloud Shell-munkamenetbe a Windows és Linux rendszeren a Ctrl Shift+V billentyűkombinációval+, vagy a Cmd+Shift+V macOS rendszeren való kiválasztásával.
A kód vagy parancs futtatásához válassza az Enter lehetőséget .
Ha a PowerShell helyi telepítését és használatát választja, ehhez a cikkhez az Azure PowerShell-modul 1.0.0-s vagy újabb verziójára van szükség. A verzió megkereséséhez futtassa a következőt: Get-Module -ListAvailable Az
. Ha frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. Ha helyileg futtatja a PowerShellt, az Azure-ral való kapcsolat létrehozásához is futnia Login-AzAccount
kell.
Erőforráscsoport létrehozása
Az erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. Hozzon létre egy Azure-erőforráscsoportot a New-AzResourceGroup használatával.
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
Hálózati erőforrások létrehozása
Hozza létre az alhálózat-konfigurációkat a New-AzVirtualNetworkSubnetConfig használatával. Hozza létre a virtuális hálózatot a New-AzVirtualNetwork használatával az alhálózat konfigurációival. Végül hozza létre a nyilvános IP-címet a New-AzPublicIpAddress használatával. Ezek az erőforrások biztosítják az alkalmazásátjáró és a hozzá kapcsolódó erőforrások hálózati kapcsolatát.
$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
Application Gateway létrehozása
Az IP-konfigurációk és az előtérbeli port létrehozása
Társítsa a korábban létrehozott alhálózatot az Application Gatewayhez a New-AzApplicationGatewayIPConfiguration használatával. Rendelje hozzá a nyilvános IP-címet az application gatewayhez a New-AzApplicationGatewayFrontendIPConfig használatával.
$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
A háttérkészletek létrehozása és beállítása
Hozza létre az application gateway első háttércímkészletét a New-AzApplicationGatewayBackendAddressPool használatával. Konfigurálja a készlet beállításait a New-AzApplicationGatewayBackendHttpSettings használatával.
$contosoPool = New-AzApplicationGatewayBackendAddressPool `
-Name contosoPool
$fabrikamPool = New-AzApplicationGatewayBackendAddressPool `
-Name fabrikamPool
$poolSettings = New-AzApplicationGatewayBackendHttpSettings `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 120
Figyelők és szabályok létrehozása
A figyelők ahhoz szükségesek, hogy az alkalmazásátjáró megfelelően irányítsa a forgalmat a háttércímkészletekhez. Ebben a cikkben két figyelőt hoz létre a két tartományhoz. A figyelők a contoso.com és fabrikam.com tartományokhoz jönnek létre.
Hozza létre az első figyelőt a New-AzApplicationGatewayHttpListener használatával a korábban létrehozott előtér-konfigurációval és előtérporttal. A szabály ahhoz szükséges, hogy a figyelő tudja, melyik háttérkészletet használja a bejövő forgalomhoz. Hozzon létre egy contosoRule nevű alapvető szabályt a New-AzApplicationGatewayRequestRoutingRule használatával.
Feljegyzés
Az Application Gateway vagy a WAF v2 termékváltozatával figyelőnként legfeljebb 5 gazdagépnevet konfigurálhat, és helyettesítő karaktereket is használhat a gazdagép nevében. További információért tekintse meg a helyettesítő karakterek gazdagépnevét a figyelőben .
Ha több gazdagépnevet és helyettesítő karaktert szeretne használni egy figyelőben az Azure PowerShell használatával, ahelyett kell használnia -HostNames
-HostName
. A HostNames használatával legfeljebb 5 gazdagépnevet említhet vesszővel elválasztott értékként. Például: -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
Prioritás hozzáadása útválasztási szabályokhoz
$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
Application Gateway létrehozása
Most, hogy létrehozta a szükséges támogató erőforrásokat, adja meg az application gateway paramétereit a New-AzApplicationGatewaySku használatával, majd hozza létre a New-AzApplicationGateway használatával.
$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
Virtuálisgép-méretezési csoportok létrehozása
Ebben a példában két virtuálisgép-méretezési csoportot hoz létre, amelyek támogatják a két létrehozott háttérkészletet. Azmyvmss1 és myvmss2 nevű méretezési csoportokat hozza létre. Minden méretezési csoport két virtuálisgép-példányt tartalmaz, amelyekre az IIS-t telepíti. Az IP-beállítások konfigurálásakor hozzárendel egy méretezési csoportot a háttérkészlethez.
$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
}
Az IIS telepítése
$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
}
CNAME rekord létrehozása a tartományban
Az alkalmazásátjáró nyilvános IP-címmel történő létrehozása után lekérheti a DNS-címet, és a segítségével létrehozhat egy CNAME rekordot a tartományban. A Get-AzPublicIPAddress használatával lekérheti az application gateway DNS-címét. Másolja a DNSSettings fqdn értékét, és használja a létrehozandó CNAME rekord értékeként. Az A-rekordok használata nem ajánlott, mert előfordulhat, hogy a VIRTUÁLIS IP-cím megváltozik, amikor az application gateway újraindul a V1 termékváltozatban.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
Az alkalmazásátjáró tesztelése
Adja meg a tartománya nevét a böngésző címsorában. Például http://www.contoso.com.
Változtassa meg a címet a másik tartományára. Ekkor az eredmény a következő példához hasonló:
Az erőforrások eltávolítása
Ha már nincs rá szükség, távolítsa el az erőforráscsoportot, az Application Gatewayt és az összes kapcsolódó erőforrást a Remove-AzResourceGroup használatával.
Remove-AzResourceGroup -Name myResourceGroupAG
Következő lépések
Alkalmazásátjáró létrehozása URL-alapú útválasztási szabályokkal