Dela via


Skapa en anpassad avsökning för Azure Application Gateway med hjälp av PowerShell för Azure Resource Manager

I den här artikeln lägger du till en anpassad avsökning till en befintlig programgateway med PowerShell. Anpassade avsökningar är användbara för program som har en specifik hälsokontrollsida eller för program som inte ger ett lyckat svar på standardwebbprogrammet.

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Förutsättning: Installera Azure PowerShell-modulen

Om du vill utföra stegen i den här artikeln, måste du installera och konfigurera Azure PowerShell-modulen. Glöm inte att slutföra alla instruktionerna. När installationen är klar, loggar du in på Azure och väljer din prenumeration.

Kommentar

Du behöver ett Azure-konto för att kunna slutföra de här stegen. Om du inte har ett Azure-konto, kan du registrera dig för en kostnadsfri utvärdering.

Skapa en programgateway med en anpassad avsökning

Logga in och skapa resursgrupp

  1. Använd Connect-AzAccount för att autentisera.

    Connect-AzAccount
    
  2. Hämta prenumerationerna för kontot.

    Get-AzSubscription
    
  3. Välj vilka av dina Azure-prenumerationer som du vill använda.

    Select-AzSubscription -Subscriptionid '{subscriptionGuid}'
    
  4. Skapa en resursgrupp. Du kan hoppa över det här steget om du har en befintlig resursgrupp.

    New-AzResourceGroup -Name appgw-rg -Location 'West US'
    

Azure Resource Manager kräver att alla resursgrupper definierar en plats. Den här platsen används som standardplats för resurserna i den resursgruppen. Kontrollera att alla kommandon för att skapa en programgateway använder samma resursgrupp.

I föregående exempel skapade vi en resursgrupp med namnet appgw-RG på plats USA, västra.

Skapa ett virtuellt nätverk och ett undernät

I följande exempel skapas ett virtuellt nätverk och ett undernät för programgatewayen. Application Gateway kräver ett eget undernät för användning. Därför bör undernätet som skapats för programgatewayen vara mindre än adressutrymmet för det virtuella nätverket så att andra undernät kan skapas och användas.

# Assign the address range 10.0.0.0/24 to a subnet variable to be used to create a virtual network.
$subnet = New-AzVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24

# Create a virtual network named appgwvnet in resource group appgw-rg for the West US region using the prefix 10.0.0.0/16 with subnet 10.0.0.0/24.
$vnet = New-AzVirtualNetwork -Name appgwvnet -ResourceGroupName appgw-rg -Location 'West US' -AddressPrefix 10.0.0.0/16 -Subnet $subnet

# Assign a subnet variable for the next steps, which create an application gateway.
$subnet = $vnet.Subnets[0]

Skapa en offentlig IP-adress för klientdelskonfigurationen

Skapa en offentlig IP-resurs, publicIP01, i resursgruppen appgw-rg för regionen USA, västra. I det här exemplet används en offentlig IP-adress för klientdels-IP-adressen för programgatewayen. Programgatewayen kräver att den offentliga IP-adressen har ett dynamiskt skapat DNS-namn och därför -DomainNameLabel inte kan anges när den offentliga IP-adressen skapas.

$publicip = New-AzPublicIpAddress -ResourceGroupName appgw-rg -Name publicIP01 -Location 'West US' -AllocationMethod Dynamic

Skapa en programgateway

Du konfigurerar alla konfigurationsobjekt innan du skapar programgatewayen. I följande exempel skapas de konfigurationsobjekt som behövs för en application gateway-resurs.

Komponent Beskrivning
Gateway IP-konfiguration En IP-konfiguration för en programgateway.
Serverdelspool En pool med IP-adresser, FQDN:er eller nätverkskort som är till de programservrar som är värdar för webbprogrammet
Hälsoavsökning En anpassad avsökning som används för att övervaka hälsotillståndet för medlemmarna i serverdelspoolen
HTTP-inställningar En samling inställningar som port, protokoll, cookiebaserad tillhörighet, avsökning och timeout. De här inställningarna avgör hur trafik dirigeras till medlemmarna i serverdelspoolen
Klientdelsport Porten som programgatewayen lyssnar efter trafik på
Lyssnare En kombination av ett protokoll, klientdels-IP-konfiguration och klientdelsport. Det här är vad som lyssnar efter inkommande begäranden.
Regel Dirigerar trafiken till rätt serverdel baserat på HTTP-inställningar.
# Creates an application gateway Frontend IP configuration named gatewayIP01
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet

#Creates a backend IP address pool named pool01 with IP addresses 134.170.185.46, 134.170.188.221, 134.170.185.50.
$pool = New-AzApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221, 134.170.185.50

# Creates a probe that will check health at http://contoso.com/path/path.htm
$probe = New-AzApplicationGatewayProbeConfig -Name probe01 -Protocol Http -HostName 'contoso.com' -Path '/path/path.htm' -Interval 30 -Timeout 120 -UnhealthyThreshold 8

# Creates the backend http settings to be used. This component references the $probe created in the previous command.
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Disabled -Probe $probe -RequestTimeout 80

# Creates a frontend port for the application gateway to listen on port 80 that will be used by the listener.
$fp = New-AzApplicationGatewayFrontendPort -Name frontendport01 -Port 80

# Creates a frontend IP configuration. This associates the $publicip variable defined previously with the frontend IP that will be used by the listener.
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name fipconfig01 -PublicIPAddress $publicip

# Creates the listener. The listener is a combination of protocol and the frontend IP configuration $fipconfig and frontend port $fp created in previous steps.
$listener = New-AzApplicationGatewayHttpListener -Name listener01  -Protocol Http -FrontendIPConfiguration $fipconfig -FrontendPort $fp

# Creates the rule that routes traffic to the backend pools.  In this example we create a basic rule that uses the previous defined http settings and backend address pool.  It also associates the listener to the rule
$rule = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

# Sets the SKU of the application gateway, in this example we create a small standard application gateway with 2 instances.
$sku = New-AzApplicationGatewaySku -Name Standard_Small -Tier Standard -Capacity 2

# The final step creates the application gateway with all the previously defined components.
$appgw = New-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg -Location 'West US' -BackendAddressPools $pool -Probes $probe -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig  -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku

Lägga till en avsökning till en befintlig programgateway

Följande kodfragment lägger till en avsökning till en befintlig programgateway.

# Load the application gateway resource into a PowerShell variable by using Get-AzApplicationGateway.
$getgw =  Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

# Create the probe object that will check health at http://contoso.com/path/path.htm
$probe = Add-AzApplicationGatewayProbeConfig -ApplicationGateway $getgw -Name probe01 -Protocol Http -HostName 'contoso.com' -Path '/path/custompath.htm' -Interval 30 -Timeout 120 -UnhealthyThreshold 8

# Set the backend HTTP settings to use the new probe
$getgw = Set-AzApplicationGatewayBackendHttpSettings -ApplicationGateway $getgw -Name $getgw.BackendHttpSettingsCollection.name -Port 80 -Protocol Http -CookieBasedAffinity Disabled -Probe $probe -RequestTimeout 120

# Save the application gateway with the configuration changes
Set-AzApplicationGateway -ApplicationGateway $getgw

Ta bort en avsökning från en befintlig programgateway

Följande kodfragment tar bort en avsökning från en befintlig programgateway.

# Load the application gateway resource into a PowerShell variable by using Get-AzApplicationGateway.
$getgw =  Get-AzApplicationGateway -Name appgwtest -ResourceGroupName appgw-rg

# Remove the probe from the application gateway configuration object
$getgw = Remove-AzApplicationGatewayProbeConfig -ApplicationGateway $getgw -Name $getgw.Probes.name

# Set the backend HTTP settings to remove the reference to the probe. The backend http settings now use the default probe
$getgw = Set-AzApplicationGatewayBackendHttpSettings -ApplicationGateway $getgw -Name $getgw.BackendHttpSettingsCollection.name -Port 80 -Protocol http -CookieBasedAffinity Disabled

# Save the application gateway with the configuration changes
Set-AzApplicationGateway -ApplicationGateway $getgw

Hämta DNS-namn för programgatewayen

När du har skapat gatewayen, är nästa steg att konfigurera klientprogrammet för kommunikation. När du använder en offentlig IP-adress kräver programgatewayen ett dynamiskt tilldelat DNS-namn, vilket inte är användarvänligt. För att säkerställa att slutanvändare kan nå programgatewayen kan en CNAME-post användas för att peka på den offentliga slutpunkten för programgatewayen. Konfigurera ett eget domännamn i Azure. Gör detta genom att hämta information om programgatewayen och dess associerade IP/DNS-namn med PublicIPAddress-elementet kopplat till programgatewayen. programgatewayens DNS-namn ska användas för att skapa en CNAME-post som leder de två webbapparna till detta DNS-namn. Användning av A-poster rekommenderas inte eftersom VIP kan ändras vid omstart av programgatewayen.

Get-AzPublicIpAddress -ResourceGroupName appgw-RG -Name publicIP01
Name                     : publicIP01
ResourceGroupName        : appgw-RG
Location                 : westus
Id                       : /subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/publicIPAddresses/publicIP01
Etag                     : W/"00000d5b-54ed-4907-bae8-99bd5766d0e5"
ResourceGuid             : 00000000-0000-0000-0000-000000000000
ProvisioningState        : Succeeded
Tags                     : 
PublicIpAllocationMethod : Dynamic
IpAddress                : xx.xx.xxx.xx
PublicIpAddressVersion   : IPv4
IdleTimeoutInMinutes     : 4
IpConfiguration          : {
                                "Id": "/subscriptions/<subscription_id>/resourceGroups/appgw-RG/providers/Microsoft.Network/applicationGateways/appgwtest/frontendIP
                            Configurations/frontend1"
                            }
DnsSettings              : {
                                "Fqdn": "00000000-0000-xxxx-xxxx-xxxxxxxxxxxx.cloudapp.net"
                            }

Nästa steg

Lär dig hur du konfigurerar TLS-avlastning genom att besöka: Konfigurera TLS-avlastning