Mit azure Application Gateway können Sie über eine App Service-App oder einen anderen Mehrinstanzendienst als Back-End-Poolmitglied verfügen. In diesem Artikel erfahren Sie, wie Sie eine App Service-App mit Application Gateway konfigurieren. Die Konfiguration für das Anwendungsgateway unterscheidet sich je nachdem, wie auf den App-Dienst zugegriffen werden kann:
- Bei der ersten Option wird sowohl für Application Gateway als auch für App Service im Back-End eine benutzerdefinierte Domäne verwendet.
- Die zweite Option besteht darin, dass das Anwendungsgateway auf den App-Dienst über dessen Standarddomäne ".azurewebsite.net" zugreift.
Diese Konfiguration wird für Produktionsszenarien empfohlen und entspricht der Praxis, den Hostnamen im Anforderungsfluss nicht zu ändern. Sie müssen über eine benutzerdefinierte Domäne (und ein zugeordnetes Zertifikat) verfügen, um zu vermeiden, dass Sie sich auf die Standardeinstellung "verlassen müssen. Azurewebsite"-Domäne.
Der gleiche Domänenname für sowohl das Application Gateway als auch den App Service im Back-End-Pool erfordert nicht, dass der Anforderungsfluss den Hostnamen überschreibt. Die Back-End-Webanwendung sieht den ursprünglichen Host wie vom Client verwendet.
Diese Konfiguration ist am einfachsten und erfordert keine benutzerdefinierte Domäne. Daher ermöglicht es eine schnelle komfortable Einrichtung.
Wenn der App-Dienst keine benutzerdefinierte Domäne zugeordnet hat: Der Hostheader der eingehenden Anforderung in der Webanwendung muss auf die Standarddomäne festgelegt werden, suffixiert mit ".azurewebsites.net" oder sonst kann die Plattform die Anforderung nicht ordnungsgemäß weiterleiten.
Der Hostheader in der ursprünglichen Anforderung, die vom Anwendungsgateway empfangen wird, unterscheidet sich vom Hostnamen des Back-End-App-Diensts.
In diesem Artikel erfahren Sie, wie Sie Folgendes tun:
- Konfigurieren von DNS
- Hinzufügen von App Service als Back-End-Pool zu Application Gateway
- Konfigurieren von HTTP-Einstellungen für die Verbindung mit App Service
- Konfigurieren eines HTTP-Listeners
- Konfigurieren einer Anforderungsroutingregel
Voraussetzungen
Konfigurieren von DNS
Im Kontext dieses Szenarios ist das DNS an zwei Stellen relevant:
- Beim DNS-Namen, den der Benutzer oder Client für Application Gateway verwendet und der in einem Browser angezeigt wird
- Beim DNS-Namen, den Application Gateway intern verwendet, um auf App Service im Back-End zuzugreifen
Leiten Sie den Benutzer oder Client mithilfe der benutzerdefinierten Domäne an Application Gateway weiter. Richten Sie das DNS mithilfe eines CNAME-Alias ein, der auf das DNS für Application Gateway zeigt. Die DNS-Adresse von Application Gateway wird auf der Übersichtsseite der zugehörigen öffentlichen IP-Adresse angezeigt. Alternativ können Sie einen A-Eintrag erstellen, der direkt auf die IP-Adresse verweist. (Bei Application Gateway V1 kann sich die VIP ändern, wenn Sie den Dienst beenden und starten, weshalb diese Option unerwünscht ist.)
App Service sollte so konfiguriert sein, dass Datenverkehr von Application Gateway mithilfe des benutzerdefinierten Domänennamens als eingehender Host akzeptiert wird. Weitere Informationen zum Zuordnen einer benutzerdefinierten Domäne zu App Service finden Sie unter Tutorial: Zuordnen eines vorhandenen benutzerdefinierten DNS-Namens zu Azure App Service. Um die Domäne zu überprüfen, muss App Service nur ein TXT-Eintrag hinzugefügt werden. Für CNAME- oder A-Einträge ist keine Änderung erforderlich. Die DNS-Konfiguration für die benutzerdefinierte Domäne wird weiterhin auf das Anwendungsgateway gerichtet.
Konfigurieren Sie die TLS-Bindung, um Verbindungen mit App Service über HTTPS zu akzeptieren. Weitere Informationen finden Sie unter Sichern Sie einen benutzerdefinierten DNS-Namen mit einer TLS/SSL-Bindung in Azure App Service. Konfigurieren Sie App Service so, dass das Zertifikat für die benutzerdefinierte Domain aus dem Azure Key Vault abgerufen wird.
Wenn keine benutzerdefinierte Domäne verfügbar ist, kann der Benutzer oder Client mithilfe der IP-Adresse des Gateways oder seiner DNS-Adresse auf Application Gateway zugreifen. Die DNS-Adresse von Application Gateway finden Sie auf der Übersichtsseite der zugehörigen öffentlichen IP-Adresse. Wenn keine benutzerdefinierte Domäne verfügbar ist, bedeutet dies, dass kein öffentlich signiertes Zertifikat für TLS im Anwendungsgateway verfügbar ist. Clients sind auf die Verwendung von HTTP oder HTTPS mit einem selbstsignierten Zertifikat beschränkt, die beide nicht erwünscht sind.
Um eine Verbindung mit App Service herzustellen, verwendet Application Gateway die von App Service bereitgestellte Standarddomäne (mit dem Suffix „azurewebsites.net“).
Hinzufügen eines App-Diensts als Back-End-Pool
Wählen Sie im Azure-Portal Ihre Application Gateway-Instanz aus.
Wählen Sie unter Back-End-Poolsden Back-End-Pool aus.
Wählen Sie unter Zieltyp die Option App Services aus.
Wählen Sie unter Ziel Ihren App Service aus.
Hinweis
Die Dropdownliste füllt nur die App-Dienste auf, die sich im selben Abonnement wie Ihr Anwendungsgateway befinden. Wenn Sie einen App-Dienst verwenden möchten, der sich in einem anderen Abonnement befindet als das, in dem sich das Anwendungsgateway befindet, wählen Sie im Dropdownmenü "Ziele" statt "App-Dienste" die Option "IP-Adresse" oder "Hostname" aus, und geben Sie den Hostnamen (example.azurewebsites.net) des App-Diensts ein. Wenn Sie private Endpunkte mit Ihrem App Service verwenden, sollten Sie stattdessen den FQDN oder die IP-Adresse des privaten Endpunkts verwenden.
Wählen Sie Speichern aus.
# Fully qualified default domain name of the web app:
$webAppFQDN = "<nameofwebapp>.azurewebsite.net"
# For Application Gateway: both name, resource group and name for the backend pool to create:
$rgName = "<name of resource group for App Gateway>"
$appGwName = "<name of the App Gateway>"
$appGwBackendPoolNameForAppSvc = "<name for backend pool to be added>"
# Get existing Application Gateway:
$gw = Get-AzApplicationGateway -Name $appGwName -ResourceGroupName $rgName
# Add a new Backend Pool with App Service in there:
Add-AzApplicationGatewayBackendAddressPool -Name $appGwBackendPoolNameForAppSvc -ApplicationGateway $gw -BackendFqdns $webAppFQDN
# Update Application Gateway with the new added Backend Pool:
Set-AzApplicationGateway -ApplicationGateway $gw
Bearbeiten von HTTP-Einstellungen für App Service
Eine HTTP-Einstellung ist erforderlich, die Application Gateway anweist, mithilfe des benutzerdefinierten Domänennamens auf das App Service-Back-End zuzugreifen. Die HTTP-Einstellung verwendet standardmäßig den Standardintegritätstest. Während Standardintegritätstests Anforderungen mit dem Hostnamen weiterleiten, unter dem Datenverkehr empfangen wird, verwenden die Integritätstests 127.0.0.1 als Hostnamen für den Back-End-Pool, da nicht explizit ein Hostname definiert wurde. Aus diesem Grund müssen Sie zunächst einen benutzerdefinierten Integritätstest erstellen, der mit dem richtigen benutzerdefinierten Domänennamen als Hostnamen konfiguriert ist.
Wir stellen eine Verbindung mit dem Back-End mithilfe von HTTPS her.
- Wählen Sie unter HTTP-Einstellungen eine vorhandene HTTP-Einstellung aus oder fügen Sie eine neue hinzu.
- Wenn Sie eine neue HTTP-Einstellung erstellen, geben Sie ihr einen Namen.
- Wählen Sie HTTPS als gewünschtes Back-End-Protokoll mit Port 443 aus.
- Wenn das Zertifikat von einer bekannten Autorität signiert ist, wählen Sie "Ja" für "Zertifikat der bekannten Zertifizierungsstelle des Benutzers" aus. Alternativ können Sie Authentifizierungs-/vertrauenswürdige Stammzertifikate von Back-End-Servern hinzufügen
- Stellen Sie sicher, dass „Mit neuem Hostnamen außer Kraft setzen“ auf „Nein“ festgelegt ist.
- Wählen Sie die benutzerdefinierte HTTPS-Überprüfung in der Dropdownliste für "Benutzerdefinierte Überprüfung" aus.
Eine HTTP-Einstellung ist erforderlich, die Application Gateway anweist, mithilfe des Standarddomänennamens („azurewebsites.net“) auf das App Service-Back-End zuzugreifen. Hierzu setzt die HTTP-Einstellung explizit den Hostnamen außer Kraft.
- Wählen Sie unter HTTP-Einstellungen eine vorhandene HTTP-Einstellung aus oder fügen Sie eine neue hinzu.
- Wenn Sie eine neue HTTP-Einstellung erstellen, geben Sie ihr einen Namen.
- Wählen Sie HTTPS als gewünschtes Back-End-Protokoll mit Port 443 aus.
- Wenn das Zertifikat von einer bekannten Zertifizierungsstelle signiert wurde, klicken Sie bei „Dem Benutzer bekanntes Zertifizierungsstellenzertifikat“ auf „Ja“. Fügen Sie alternativ Authentifizierungs- bzw. vertrauenswürdige Stammzertifikate von Back-End-Servern hinzu, wie hier beschrieben wird.
- Stellen Sie sicher, dass „Mit neuem Hostnamen außer Kraft setzen“ auf „Ja“ festgelegt ist.
- Wählen Sie unter „Hostnamen überschreiben“ die Option „Hostnamen aus Back-End-Ziel auswählen“ aus. Diese Einstellung bewirkt, dass die Anforderung an app Service den Hostnamen "azurewebsites.net" verwendet, wie im Back-End-Pool konfiguriert ist.
# Configure Application Gateway to connect to App Service using the incoming hostname
$rgName = "<name of resource group for App Gateway>"
$appGwName = "<name of the App Gateway>"
$customProbeName = "<name for custom health probe>"
$customDomainName = "<FQDN for custom domain associated with App Service>"
$httpSettingsName = "<name for http settings to be created>"
# Get existing Application Gateway:
$gw = Get-AzApplicationGateway -Name $appGwName -ResourceGroupName $rgName
# Add custom health probe using custom domain name:
Add-AzApplicationGatewayProbeConfig -Name $customProbeName -ApplicationGateway $gw -Protocol Https -HostName $customDomainName -Path "/" -Interval 30 -Timeout 120 -UnhealthyThreshold 3
$probe = Get-AzApplicationGatewayProbeConfig -Name $customProbeName -ApplicationGateway $gw
# Add HTTP Settings to use towards App Service:
Add-AzApplicationGatewayBackendHttpSettings -Name $httpSettingsName -ApplicationGateway $gw -Protocol Https -Port 443 -Probe $probe -CookieBasedAffinity Disabled -RequestTimeout 30
# Update Application Gateway with the new added HTTP settings and probe:
Set-AzApplicationGateway -ApplicationGateway $gw
# Configure Application Gateway to connect to backend using default App Service hostname
$rgName = "<name of resource group for App Gateway>"
$appGwName = "<name of the App Gateway>"
$httpSettingsName = "<name for http settings to be created>"
# Get existing Application Gateway:
$gw = Get-AzApplicationGateway -Name $appGwName -ResourceGroupName $rgName
# Add HTTP Settings to use towards App Service:
Add-AzApplicationGatewayBackendHttpSettings -Name $httpSettingsName -ApplicationGateway $gw -Protocol Https -Port 443 -PickHostNameFromBackendAddress -CookieBasedAffinity Disabled -RequestTimeout 30
# Update Application Gateway with the new added HTTP settings and probe:
Set-AzApplicationGateway -ApplicationGateway $gw
Um Datenverkehr zu akzeptieren, muss ein Listener konfiguriert werden. Weitere Informationen zu Listener finden Sie unter Application Gateway-Listener-Konfiguration.
- Öffnen Sie den Abschnitt "Listener", und wählen Sie "Listener hinzufügen" aus, oder wählen Sie einen vorhandenen Listener aus, der bearbeitet werden soll.
- Für einen neuen Listener: Geben Sie ihm einen Namen.
- Wählen Sie unter "Front-End-IP" die IP-Adresse aus, auf der Sie lauschen möchten.
- Wählen Sie unter "Port" die Option 443 aus.
- Wählen Sie unter "Protokoll" "HTTPS" aus.
- Wählen Sie unter "Zertifikat auswählen" die Option "Zertifikat aus Key Vault auswählen" aus. Weitere Informationen finden Sie unter Verwenden von Key Vault , wo Sie weitere Informationen zum Zuweisen einer verwalteten Identität und zur Bereitstellung von Rechten für Ihren Key Vault finden.
- Benennen Sie das Zertifikat.
- Wählen Sie die verwaltete Identität aus.
- Wählen Sie die Key Vault-Instanz aus, aus der das Zertifikat abgerufen werden soll.
- Auswählen des Zertifikats
- Wählen Sie unter "Listenertyp" "Einfach" aus.
- Wählen Sie "Hinzufügen" aus, um den Listener hinzuzufügen.
Wenn keine benutzerdefinierte Domäne verfügbar oder zugeordnetes Zertifikat vorhanden ist, konfigurieren Sie das Anwendungsgateway so, dass auf HTTP-Datenverkehr auf Port 80 lauscht. Lesen Sie sich anderenfalls die Anweisungen zum Erstellen eines selbstsignierten Zertifikats durch.
- Öffnen Sie den Abschnitt "Listener", und wählen Sie "Listener hinzufügen" aus, oder wählen Sie einen vorhandenen Listener aus, der bearbeitet werden soll.
- Für einen neuen Listener: Geben Sie ihm einen Namen.
- Wählen Sie unter "Front-End-IP" die IP-Adresse aus, auf der Sie lauschen möchten.
- Wählen Sie unter "Port" 80 aus.
- Wählen Sie unter "Protokoll" "HTTP" aus.
# This script assumes that:
# - a certificate was imported in Azure Key Vault already
# - a managed identity was assigned to Application Gateway with access to the certificate
# - there is no HTTP listener defined yet for HTTPS on port 443
$rgName = "<name of resource group for App Gateway>"
$appGwName = "<name of the App Gateway>"
$appGwSSLCertificateName = "<name for ssl cert to be created within Application Gateway"
$appGwSSLCertificateKeyVaultSecretId = "<key vault secret id for the SSL certificate to use>"
$httpListenerName = "<name for the listener to add>"
# Get existing Application Gateway:
$gw = Get-AzApplicationGateway -Name $appGwName -ResourceGroupName $rgName
# Create SSL certificate object for Application Gateway:
Add-AzApplicationGatewaySslCertificate -Name $appGwSSLCertificateName -ApplicationGateway $gw -KeyVaultSecretId $appGwSSLCertificateKeyVaultSecretId
$sslCert = Get-AzApplicationGatewaySslCertificate -Name $appGwSSLCertificateName -ApplicationGateway $gw
# Fetch public ip associated with Application Gateway:
$ipAddressResourceId = $gw.FrontendIPConfigurations.PublicIPAddress.Id
$ipAddressResource = Get-AzResource -ResourceId $ipAddressResourceId
$publicIp = Get-AzPublicIpAddress -ResourceGroupName $ipAddressResource.ResourceGroupName -Name $ipAddressResource.Name
$frontendIpConfig = $gw.FrontendIpConfigurations | Where-Object {$_.PublicIpAddress -ne $null}
$port = New-AzApplicationGatewayFrontendPort -Name "port_443" -Port 443
Add-AzApplicationGatewayFrontendPort -Name "port_443" -ApplicationGateway $gw -Port 443
Add-AzApplicationGatewayHttpListener -Name $httpListenerName -ApplicationGateway $gw -Protocol Https -FrontendIPConfiguration $frontendIpConfig -FrontendPort $port -SslCertificate $sslCert
# Update Application Gateway with the new HTTPS listener:
Set-AzApplicationGateway -ApplicationGateway $gw
In vielen Fällen ist ein öffentlicher Listener für HTTP auf Port 80 vorhanden. Das folgende Skript erstellt eine, wenn dies noch nicht der Fall ist.
$rgName = "<name of resource group for App Gateway>"
$appGwName = "<name of the App Gateway>"
$httpListenerName = "<name for the listener to add if not exists yet>"
# Get existing Application Gateway:
$gw = Get-AzApplicationGateway -Name $appGwName -ResourceGroupName $rgName
# Check if HTTP listener on port 80 already exists:
$port = $gw.FrontendPorts | Where-Object {$_.Port -eq 80}
$listener = $gw.HttpListeners | Where-Object {$_.Protocol.ToString().ToLower() -eq "http" -and $_.FrontendPort.Id -eq $port.Id}
if ($listener -eq $null){
$frontendIpConfig = $gw.FrontendIpConfigurations | Where-Object {$_.PublicIpAddress -ne $null}
Add-AzApplicationGatewayHttpListener -Name $httpListenerName -ApplicationGateway $gw -Protocol Http -FrontendIPConfiguration $frontendIpConfig -FrontendPort $port
# Update Application Gateway with the new HTTPS listener:
Set-AzApplicationGateway -ApplicationGateway $gw
}
Der zuvor konfigurierte Back-End-Pool und die HTTP-Einstellungen ermöglichen es, eine Anforderungsroutingregel einzurichten, die den Datenverkehr von einem Listener empfängt und unter Verwendung der HTTP-Einstellungen an den Back-End-Pool weiterleitet. Stellen Sie dafür sicher, dass Sie über einen HTTP- oder HTTPS-Listener verfügen, der noch nicht an eine vorhandene Routingregel gebunden ist.
- Wählen Sie unter "Regeln" aus, um eine neue "Anforderungsroutingregel" hinzuzufügen.
- Geben Sie einen Namen für die Regel an.
- Wählen Sie einen HTTP- oder HTTPS-Listener aus, der noch nicht an eine vorhandene Routingregel gebunden ist.
- Wählen Sie unter „Back-End-Ziele“ den Back-End-Pool aus, in dem App Service konfiguriert wurde.
- Konfigurieren Sie die HTTP-Einstellungen, mit denen Application Gateway eine Verbindung mit dem App Service-Back-End herstellen soll.
- Klicken Sie auf „Hinzufügen“, um diese Konfiguration zu speichern.
$rgName = "<name of resource group for App Gateway>"
$appGwName = "<name of the App Gateway>"
$httpListenerName = "<name for existing http listener (without rule) to route traffic from>"
$httpSettingsName = "<name for http settings to use>"
$appGwBackendPoolNameForAppSvc = "<name for backend pool to route to>"
$reqRoutingRuleName = "<name for request routing rule to be added>"
# Get existing Application Gateway:
$gw = Get-AzApplicationGateway -Name $appGwName -ResourceGroupName $rgName
# Get HTTP Settings:
$httpListener = Get-AzApplicationGatewayHttpListener -Name $httpListenerName -ApplicationGateway $gw
$httpSettings = Get-AzApplicationGatewayBackendHttpSettings -Name $httpSettingsName -ApplicationGateway $gw
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name $appGwBackendPoolNameForAppSvc -ApplicationGateway $gw
# Add routing rule:
Add-AzApplicationGatewayRequestRoutingRule -Name $reqRoutingRuleName -ApplicationGateway $gw -RuleType Basic -BackendHttpSettings $httpSettings -HttpListener $httpListener -BackendAddressPool $backendPool
# Update Application Gateway with the new routing rule:
Set-AzApplicationGateway -ApplicationGateway $gw
Testen
Stellen Sie vorher sicher, dass die Back-End-Integrität als fehlerfrei angezeigt wird:
Öffnen Sie den Abschnitt "Back-End-Zustand" und stellen Sie sicher, dass die Spalte "Status" das Zusammenspiel von HTTP-Einstellung und Back-End-Pool als "Gesund" anzeigt.
Navigieren Sie nun zur Webanwendung, indem Sie entweder die IP-Adresse von Application Gateway oder den zugehörigen DNS-Namen für die IP-Adresse verwenden. Beide finden Sie auf der Seite "Übersicht" des Anwendungsgateways als Eigenschaft unter "Essentials". Alternativ zeigt die Ressource "Öffentliche IP-Adresse" auch die IP-Adresse und den zugehörigen DNS-Namen an.
Achten Sie beim Testen der Anwendung auf die folgende nichtexextive Liste potenzieller Symptome:
- Umleitungen, die direkt auf ".azurewebsite.net" zeigen, statt auf das Anwendungsgateway
- enthält Authentifizierungsumleitungen, die versuchen, direkt auf ".azurewebsite.net" zuzugreifen
- Domänengebundene Cookies, die nicht an das Back-End übergeben werden
- Die Verwendung der Einstellung "ARR affinity" in App Service einschließen
Die oben genannten Bedingungen (die im Architecture Center ausführlicher erläutert werden) deuten darauf hin, dass Ihre Webanwendung nicht gut damit umgehen kann, den Hostnamen neu zu schreiben. Dies tritt häufig auf. Die empfohlene Vorgehensweise besteht darin, die Anweisungen für die Konfiguration von Application Gateway mit App Service mithilfe einer benutzerdefinierten Domäne zu befolgen. Weitere Informationen finden Sie im folgenden Artikel: Behandeln von App Service-Problemen in Application Gateway.
Öffnen Sie den Abschnitt "Back-End-Zustand" und stellen Sie sicher, dass die Spalte "Status" das Zusammenspiel von HTTP-Einstellung und Back-End-Pool als "Gesund" anzeigt.
Navigieren Sie nun zur Webanwendung mithilfe der benutzerdefinierten Domäne, die Sie sowohl Application Gateway als auch App Service im Back-End zugeordnet haben.
Überprüfen Sie, ob die Back-End-Integrität für das Back-End und die HTTP-Einstellungen als „Fehlerfrei“ angezeigt wird:
$rgName = "<name of resource group for App Gateway>"
$appGwName = "<name of the App Gateway>"
# Get existing Application Gateway:
$gw = Get-AzApplicationGateway -Name $appGwName -ResourceGroupName $rgName
# Check health:
Get-AzApplicationGatewayBackendHealth -ResourceGroupName $rgName -Name $appGwName
Um die Konfiguration zu testen, fordern wir Inhalte vom App-Dienst über das Anwendungsgateway mithilfe der benutzerdefinierten Domäne an:
$customDomainName = "<FQDN for custom domain pointing to Application Gateway>"
Invoke-WebRequest $customDomainName
Überprüfen Sie, ob die Back-End-Integrität für das Back-End und die HTTP-Einstellungen als „Fehlerfrei“ angezeigt wird:
$rgName = "<name of resource group for App Gateway>"
$appGwName = "<name of the App Gateway>"
# Get existing Application Gateway:
$gw = Get-AzApplicationGateway -Name $appGwName -ResourceGroupName $rgName
# Check health:
Get-AzApplicationGatewayBackendHealth -ResourceGroupName $rgName -Name $appGwName
Um die Konfiguration zu testen, fordern wir Inhalte vom App-Dienst über das Anwendungsgateway mithilfe der IP-Adresse an:
$rgName = "<name of resource group for App Gateway>"
$appGwName = "<name of the App Gateway>"
# Get existing Application Gateway:
$gw = Get-AzApplicationGateway -Name $appGwName -ResourceGroupName $rgName
# Get ip address:
$ipAddressResourceId = $gw.FrontendIPConfigurations.PublicIPAddress.Id
$ipAddressResource = Get-AzResource -ResourceId $ipAddressResourceId
$publicIp = Get-AzPublicIpAddress -ResourceGroupName $ipAddressResource.ResourceGroupName -Name $ipAddressResource.Name
Write-Host "Public ip address for Application Gateway is $($publicIp.IpAddress)"
Invoke-WebRequest "http://$($publicIp.IpAddress)"
Achten Sie beim Testen der Anwendung auf die folgende nichtexextive Liste potenzieller Symptome:
- Umleitungen, die direkt auf „.azurewebsites.net“ verweisen anstatt auf Application Gateway
- Dies umfasst App Service-Authentifizierungsumleitungen, die versuchen, direkt auf „.azurewebsites.net“ zuzugreifen.
- Domänengebundene Cookies, die nicht an das Back-End übergeben werden
- Dies umfasst die Verwendung der Einstellung „ARR-Affinität“ in App Service.
Die oben genannten Bedingungen (die im Architecture Center ausführlicher erläutert werden) deuten darauf hin, dass Ihre Webanwendung nicht gut damit umgehen kann, den Hostnamen neu zu schreiben. Dies tritt häufig auf. Die empfohlene Methode zum Umgang mit dieser Bedingung besteht darin, die Anweisungen für das Konfigurationsanwendungsgateway mit App Service mithilfe einer benutzerdefinierten Domäne zu befolgen. Weitere Informationen finden Sie im folgenden Artikel: Behandeln von App Service-Problemen in Application Gateway.
Beschränken des Zugriffs
Die in diesen Beispielen bereitgestellten Web-Apps verwenden öffentliche IP-Adressen, auf die aus dem Internet direkt zugegriffen werden kann. Es hilft bei der Problembehandlung, wenn Sie von einem neuen Feature erfahren und neue Dinge ausprobieren. Wenn Sie jedoch beabsichtigen, ein Feature in der Produktion bereitzustellen, möchten Sie weitere Einschränkungen hinzufügen. Ziehen Sie folgende Möglichkeiten in Betracht:
- Konfigurieren Sie Auf Dienstendpunkten basierende Zugriffseinschränkungsregeln. Dadurch können Sie den eingehenden Zugriff auf die App sperren, um sicherzustellen, dass die Quelladresse von Application Gateway stammt.
- Verwenden Sie Statische Azure App Service-IP-Einschränkungen. Beispielsweise können Sie die Web-App so einschränken, dass sie nur Datenverkehr vom Anwendungsgateway empfängt. Verwenden Sie die IP-Einschränkungsfunktion von App Service, um die Anwendungsgateway-VIP als einzige Adresse aufzulisten, auf die zugegriffen werden kann.