Freigeben über


Erstellen eines Anwendungsgateways und Umschreiben von HTTP-Headern

Sie können Azure PowerShell verwenden, um Regeln zum Umschreiben von HTTP-Anforderungs- und Antwortheadern zu konfigurieren, wenn Sie die neue automatische und zonenredundante Anwendungsgateway-SKU erstellen.

In diesem Artikel erfahren Sie, wie Sie:

  • Ein virtuelles Netzwerk mit automatischer Skalierung erstellen
  • Erstellen einer reservierten öffentlichen IP
  • Einrichten der Anwendungsgatewayinfrastruktur
  • Geben Sie die HTTP-Header-Umschreiberegelkonfiguration an
  • Automatische Skalierung angeben
  • Erstellen des Anwendungsgateways
  • Testen des Anwendungsgateways

Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.

Voraussetzungen

Dieser Artikel erfordert, dass Sie Azure PowerShell lokal ausführen. Sie müssen az module version 1.0.0 oder höher installiert haben. Führen Sie Import-Module Az und dann Get-Module Az aus, um die Version zu finden. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Führen Sie nach dem Überprüfen der PowerShell-Version Login-AzAccount aus, um eine Verbindung mit Azure zu erstellen.

Anmelden bei Azure

Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"

Erstellen einer Ressourcengruppe

Erstellen Sie eine Ressourcengruppe an einem der verfügbaren Speicherorte.

$location = "East US 2"
$rg = "<rg name>"

#Create a new Resource Group
New-AzResourceGroup -Name $rg -Location $location

Erstellen eines virtuellen Netzwerks

Erstellen Sie ein virtuelles Netzwerk mit einem dedizierten Subnetz für ein automatisch skalierendes Anwendungsgateway. Derzeit kann nur ein automatisches skalierendes Anwendungsgateway in jedem dedizierten Subnetz bereitgestellt werden.

#Create VNet with two subnets
$sub1 = New-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -AddressPrefix "10.0.0.0/24"
$sub2 = New-AzVirtualNetworkSubnetConfig -Name "BackendSubnet" -AddressPrefix "10.0.1.0/24"
$vnet = New-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg `
       -Location $location -AddressPrefix "10.0.0.0/16" -Subnet $sub1, $sub2

Erstellen einer reservierten öffentlichen IP

Geben Sie die Zuordnungsmethode von PublicIPAddress als statisch an. Die virtuelle IP eines Anwendungsgateways mit automatischer Skalierung kann nur statisch sein. Dynamische IPs werden nicht unterstützt. Nur die standardmäßige PublicIpAddress-SKU wird unterstützt.

#Create static public IP
$pip = New-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP" `
       -location $location -AllocationMethod Static -Sku Standard

Abrufen von Details

Rufen Sie Details der Ressourcengruppe, des Subnetzes und der IP in einem lokalen Objekt ab, um die IP-Konfigurationsdetails für das Anwendungsgateway zu erstellen.

$resourceGroup = Get-AzResourceGroup -Name $rg
$publicip = Get-AzPublicIpAddress -ResourceGroupName $rg -name "AppGwVIP"
$vnet = Get-AzvirtualNetwork -Name "AutoscaleVNet" -ResourceGroupName $rg
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "AppGwSubnet" -VirtualNetwork $vnet

Konfigurieren der Infrastruktur

Konfigurieren Sie die IP-Konfiguration, die Frontend-IP-Konfiguration, den Back-End-Pool, DIE HTTP-Einstellungen, das Zertifikat, den Port und den Listener in einem identischen Format wie das vorhandene Standardanwendungsgateway. Die neue SKU folgt dem gleichen Objektmodell wie die Standard-SKU.

$ipconfig = New-AzApplicationGatewayIPConfiguration -Name "IPConfig" -Subnet $gwSubnet
$fip = New-AzApplicationGatewayFrontendIPConfig -Name "FrontendIPCOnfig" -PublicIPAddress $publicip
$pool = New-AzApplicationGatewayBackendAddressPool -Name "Pool1" `
       -BackendIPAddresses testbackend1.westus.cloudapp.azure.com, testbackend2.westus.cloudapp.azure.com
$fp01 = New-AzApplicationGatewayFrontendPort -Name "HTTPPort" -Port 80

$listener01 = New-AzApplicationGatewayHttpListener -Name "HTTPListener" `
             -Protocol Http -FrontendIPConfiguration $fip -FrontendPort $fp01

$setting = New-AzApplicationGatewayBackendHttpSettings -Name "BackendHttpSetting1" `
          -Port 80 -Protocol Http -CookieBasedAffinity Disabled

Spezifizieren Sie Ihre HTTP-Header-Umschreibregelkonfiguration

Konfigurieren Sie die neuen Objekte, die zum Umschreiben der HTTP-Header erforderlich sind:

  • RequestHeaderConfiguration: Dieses Objekt wird verwendet, um die Anforderungsheaderfelder anzugeben, in die Sie neu schreiben möchten, und den neuen Wert, in den die ursprünglichen Header umgeschrieben werden müssen.

  • ResponseHeaderConfiguration: Dieses Objekt wird verwendet, um die Antwortheaderfelder anzugeben, die Sie neu schreiben möchten, und den neuen Wert, in den die ursprünglichen Header neu geschrieben werden müssen.

  • ActionSet: Dieses Objekt enthält die Konfigurationen der oben angegebenen Anforderungs- und Antwortheader.

  • RewriteRule: Dieses Objekt enthält alle oben angegebenen actionSets .

  • RewriteRuleSet- dieses Objekt enthält alle rewriteRules und muss an eine Anforderungsroutingregel angefügt werden – einfach oder pfadbasiert.

    $requestHeaderConfiguration = New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName "X-isThroughProxy" -HeaderValue "True"
    $responseHeaderConfiguration = New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName "Strict-Transport-Security" -HeaderValue "max-age=31536000"
    $actionSet = New-AzApplicationGatewayRewriteRuleActionSet -RequestHeaderConfiguration $requestHeaderConfiguration -ResponseHeaderConfiguration $responseHeaderConfiguration    
    $rewriteRule = New-AzApplicationGatewayRewriteRule -Name rewriteRule1 -ActionSet $actionSet    
    $rewriteRuleSet = New-AzApplicationGatewayRewriteRuleSet -Name rewriteRuleSet1 -RewriteRule $rewriteRule
    

Angeben der Routingregel

Erstellen Sie eine Anforderungsroutingregel. Nach der Erstellung wird diese Neuschreibkonfiguration über die Routingregel an den Quelllistener angefügt. Bei Verwendung einer einfachen Routingregel wird die Konfiguration der erneuten Generierung eines Headers einem Quelllistener zugeordnet und fungiert als erneute Generierung eines globalen Headers. Wenn eine pfadbasierte Routingregel verwendet wird, wird die Konfiguration der erneuten Generierung eines Headers in der URL-Pfadzuordnung definiert. Dies gilt also nur für den spezifischen Pfadbereich einer Website. Unten wird eine grundlegende Routingregel erstellt, und der Regelsatz zum Umschreiben wird angefügt.

$rule01 = New-AzApplicationGatewayRequestRoutingRule -Name "Rule1" -RuleType basic `
         -BackendHttpSettings $setting -HttpListener $listener01 -BackendAddressPool $pool -RewriteRuleSet $rewriteRuleSet

Automatische Skalierung angeben

Jetzt können Sie die AutoScale-Konfiguration für das Anwendungsgateway angeben. Zwei automatische Skalierungskonfigurationstypen werden unterstützt:

  • Fester Kapazitätsmodus. In diesem Modus wird das Anwendungsgateway nicht automatisch skaliert und arbeitet mit einer festen Skalierungseinheitskapazität.

    $sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2 -Capacity 2
    
  • Automatischer Skalierungsmodus. In diesem Modus wird die automatische Skalierung des Anwendungsgateways basierend auf den Anwendungsdatenverkehrsmustern ausgeführt.

    $autoscaleConfig = New-AzApplicationGatewayAutoscaleConfiguration -MinCapacity 2
    $sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2
    

Erstellen des Anwendungsgateways

Erstellen Sie das Anwendungsgateway, und schließen Sie Redundanzzonen und die Autoskalenkonfiguration ein.

$appgw = New-AzApplicationGateway -Name "AutoscalingAppGw" -Zone 1,2,3 -ResourceGroupName $rg -Location $location -BackendAddressPools $pool -BackendHttpSettingsCollection $setting -GatewayIpConfigurations $ipconfig -FrontendIpConfigurations $fip -FrontendPorts $fp01 -HttpListeners $listener01 -RequestRoutingRules $rule01 -Sku $sku -AutoscaleConfiguration $autoscaleConfig -RewriteRuleSet $rewriteRuleSet

Testen des Anwendungsgateways

Verwenden Sie Get-AzPublicIPAddress, um die öffentliche IP-Adresse des Anwendungsgateways abzurufen. Kopieren Sie die öffentliche IP-Adresse oder den DNS-Namen, und fügen Sie sie dann in die Adressleiste Ihres Browsers ein.

Get-AzPublicIPAddress -ResourceGroupName $rg -Name AppGwVIP

Bereinigen von Ressourcen

Untersuchen Sie zunächst die Ressourcen, die mit dem Anwendungsgateway erstellt wurden. Wenn sie dann nicht mehr benötigt werden, können Sie den Remove-AzResourceGroup Befehl verwenden, um die Ressourcengruppe, das Anwendungsgateway und alle zugehörigen Ressourcen zu entfernen.

Remove-AzResourceGroup -Name $rg

Nächste Schritte