Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie mithilfe von Azure PowerShell eine SKU-Instanz des Anwendungsgateways v2 konfigurieren, um HTTP-Header in Anforderungen und Antworten neu zu schreiben. Mit der Kopfzeilenumschreibung können Sie HTTP-Header hinzufügen, entfernen oder aktualisieren, während die Anforderungs- und Antwortpakete zwischen client- und Back-End-Pools verschoben werden.
Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie über die folgenden Anforderungen verfügen:
-
Azure PowerShell: Sie benötigen Azure PowerShell lokal oder zugriff auf Azure Cloud Shell. Das Azure PowerShell Az-Modul, Version 1.0.0 oder höher, ist erforderlich. Führen Sie zum Überprüfen der Version
Get-Module -ListAvailable Azaus. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. -
Azure-Verbindung: Führen Sie nach der Überprüfung der PowerShell-Version die Authentifizierung mit Azure aus
Connect-AzAccount. - Anwendungsgateway v2: Sie benötigen eine vorhandene SKU-Instanz des Anwendungsgateways v2. Kopfzeilenumschreibung wird nur in der v2-SKU (Standard_v2 oder WAF_v2) unterstützt. Wenn Sie nicht über eine verfügen, erstellen Sie eine SKU-Instanz des Anwendungsgateways v2 , bevor Sie beginnen.
- Richtige Berechtigungen: Stellen Sie sicher, dass Sie über Die Berechtigung "Mitwirkender" oder "Besitzer" für die Anwendungsgateway-Ressource verfügen.
Von Bedeutung
Kopfzeilenumschreibungsfunktionen sind nur mit Application Gateway v2 SKU verfügbar. Diese Funktion wird von der SKU v1 nicht unterstützt.
Grundlegendes zu HTTP-Header-Neuschreibkomponenten
Um das Neuschreiben von HTTP-Headern zu konfigurieren, müssen Sie die folgenden Komponenten in einer bestimmten Reihenfolge verstehen und erstellen:
Kernkomponenten
RequestHeaderConfiguration: Gibt die Anforderungsheaderfelder an, die Sie neu schreiben möchten, und deren neue Werte. Verwenden Sie diese Komponente, um Header in Clientanforderungen zu ändern, bevor sie die Back-End-Server erreichen.
ResponseHeaderConfiguration: Gibt die Antwortheaderfelder an, die Sie neu schreiben möchten, und deren neue Werte. Verwenden Sie diese Komponente, um Header in Serverantworten zu ändern, bevor sie den Client erreichen.
ActionSet: Enthält die Konfigurationen der angegebenen Anforderungs- und Antwortheader. Jeder Aktionssatz stellt eine Auflistung der auszuführenden Headeränderungen dar.
- Bedingung: Eine optionale Konfiguration. Bedingungen für das erneute Generieren werten den Inhalt von HTTP(S)-Anforderungen und -Antworten aus. Die Umschreibungsaktion wird ausgeführt, wenn die HTTP(S)-Anforderung oder -Antwort die Bedingung für die Umschreibung erfüllt.
Hinweis
Mehrere Bedingungen, die einer Aktion zugeordnet sind, verwenden die logische UND-Operation – alle Bedingungen müssen erfüllt sein, damit die Aktion ausgeführt werden kann.
RewriteRule: Kombiniert mehrere Rewrite-Aktionen und Neuschreibbedingungen. Jede Regel definiert, wann und wie Kopfzeilen geändert werden.
RuleSequence (Optional): Bestimmt die Ausführungsreihenfolge, wenn mehrere Neuschreibregeln in einem Umschreibsatz vorhanden sind. Regeln mit niedrigeren Sequenzwerten werden zuerst ausgeführt. Wenn Sie keinen Wert angeben, ist der Standardwert 100.
Warnung
Wenn Sie mehreren Regeln denselben Sequenzwert zuweisen, wird die Ausführungsreihenfolge nicht deterministisch.
RewriteRuleSet: Enthält mehrere umgeschriebene Regeln, die einer Anforderungsroutingregel zugeordnet sind.
Anwendungsbereich
Der Umschreibkonfigurationsbereich hängt vom Routingregeltyp ab:
- Grundlegende Routingregel: Die Konfiguration für das Umschreiben von Headern gilt global für alle Anforderungen für den zugehörigen Listener.
- Pfadbasierte Routingregel: Die Konfiguration für die Kopfzeilenumschreibung gilt nur für Anforderungen, die bestimmte URL-Pfadmuster erfüllen, die in der URL-Pfadzuordnung definiert sind.
Von Bedeutung
Sie können mehrere HTTP-Header-Umschreibsätze erstellen und jeden Satz auf mehrere Listener anwenden, aber nur ein Umschreibsatz kann auf einen bestimmten Listener angewendet werden.
Authentifizieren mit Azure
Bevor Sie Regeln zum Umschreiben von Headern konfigurieren, authentifizieren Sie sich bei Azure, und wählen Sie Ihr Abonnement aus:
Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"
Die HTTP-Header-Umschreiberegelkonfiguration angeben.
In diesem Beispiel ändern wir eine Umleitungs-URL, indem wir den Speicherortheader in der HTTP-Antwort umschreiben, wenn der Speicherortheader einen Verweis auf azurewebsite.net enthält. Um diese Änderung vorzunehmen, fügen wir eine Bedingung hinzu, um zu bewerten, ob der Positionsheader in der Antwort azurewebsite.net enthält. Wir verwenden das Muster (https?)://.*azurewebsite.net(.*)$. Und wir verwenden {http_resp_Location_1}://contoso.com{http_resp_Location_2} als Kopfzeilenwert. Dieser Wert ersetzt azurewebsite.net durch contoso.com im Positionsheader.
$responseHeaderConfiguration = New-AzApplicationGatewayRewriteRuleHeaderConfiguration -HeaderName "Location" -HeaderValue "{http_resp_Location_1}://contoso.com{http_resp_Location_2}"
$actionSet = New-AzApplicationGatewayRewriteRuleActionSet -ResponseHeaderConfiguration $responseHeaderConfiguration
$condition = New-AzApplicationGatewayRewriteRuleCondition -Variable "http_resp_Location" -Pattern "(https?):\/\/.*azurewebsite\.net(.*)$" -IgnoreCase
$rewriteRule = New-AzApplicationGatewayRewriteRule -Name LocationHeader -ActionSet $actionSet -Condition $condition
$rewriteRuleSet = New-AzApplicationGatewayRewriteRuleSet -Name LocationHeaderRewrite -RewriteRule $rewriteRule
Abrufen der Konfiguration Ihres Anwendungsgateways
$appgw = Get-AzApplicationGateway -Name "AutoscalingAppGw" -ResourceGroupName "<rg name>"
Abrufen der Regelkonfiguration für das Anforderungsrouting
Rufen Sie die spezifische Anforderungsroutingregel ab, bei der Sie die Konfiguration zur Umschreibung der Kopfzeile anwenden möchten.
$reqRoutingRule = Get-AzApplicationGatewayRequestRoutingRule -Name rule1 -ApplicationGateway $appgw
Aktualisieren des Anwendungsgateways mit der Konfiguration zum Umschreiben von HTTP-Headern
In diesem Beispiel würde der Satz zum erneuten Generieren sofort einer grundlegenden Routingregel zugeordnet werden. In einer pfadbasierten Routingregel wäre die Zuordnung standardmäßig nicht aktiviert. Der Umschreibungssatz kann entweder durch das Überprüfen der Pfade, in denen er angewendet werden muss, über das Portal aktiviert werden oder durch Bereitstellen einer URL-Pfadzuordnungskonfiguration, die RewriteRuleSet für die einzelnen Pfadoptionen angibt.
Add-AzApplicationGatewayRewriteRuleSet -ApplicationGateway $appgw -Name $rewriteRuleSet.Name -RewriteRule $rewriteRuleSet.RewriteRules
Set-AzApplicationGatewayRequestRoutingRule -ApplicationGateway $appgw -Name $reqRoutingRule.Name -RuleType $reqRoutingRule.RuleType -BackendHttpSettingsId $reqRoutingRule.BackendHttpSettings.Id -HttpListenerId $reqRoutingRule.HttpListener.Id -BackendAddressPoolId $reqRoutingRule.BackendAddressPool.Id -RewriteRuleSetId $rewriteRuleSet.Id
Set-AzApplicationGateway -ApplicationGateway $appgw
Entfernen einer Neuschreibregel (optional)
Wenn Sie einen Neuschreibregelsatz aus Ihrem Anwendungsgateway entfernen müssen, führen Sie die folgenden Schritte aus:
# Retrieve the current Application Gateway configuration
$appgw = Get-AzApplicationGateway -Name "AutoscalingAppGw" -ResourceGroupName "<rg name>"
# Remove the rewrite rule set association from the routing rule first
$requestRoutingRule = Get-AzApplicationGatewayRequestRoutingRule -Name "rule1" -ApplicationGateway $appgw
# Clear the rewrite rule set reference
$requestRoutingRule.RewriteRuleSet = $null
# Remove the rewrite rule set from the Application Gateway
Remove-AzApplicationGatewayRewriteRuleSet -Name "LocationHeaderRewrite" -ApplicationGateway $appgw
# Apply the changes
Set-AzApplicationGateway -ApplicationGateway $appgw
Write-Output "Rewrite rule set removed successfully"
Nächste Schritte
Nachdem Sie nun erfahren haben, wie Sie REGELN für das Umschreiben von HTTP-Headern konfigurieren, lesen Sie die folgenden verwandten Artikel:
Häufige Szenarien: Erfahren Sie mehr über allgemeine Szenarios zum Umschreiben von Headern , einschließlich Sicherheitsheader, benutzerdefiniertem Routing und Back-End-Serverintegrationsmustern.
Überwachung und Problembehandlung: Richten Sie die Anwendungsgatewaydiagnose ein, um Headerumschreibungsvorgänge zu überwachen und Probleme zu beheben.