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.
Wenn Sie Ihre Apps oder Microservices in Azure-Container-Apps hosten, möchten Sie sie möglicherweise nicht direkt im Internet veröffentlichen. Stattdessen können Sie sie über einen Reverseproxy verfügbar machen.
Ein Reverse-Proxy ist ein Dienst, der einem oder mehreren Diensten vorgeschaltet ist. Er fängt eingehenden Datenverkehr ab und leitet ihn an das richtige Ziel weiter.
Mit Reverseproxys können Sie Dienste vor Ihren Apps platzieren, die übergreifende Funktionalität unterstützen, darunter:
- Routenplanung
- Zwischenspeicherung
- Ratenbegrenzung
- Lastenausgleich
- Sicherheitsebenen
- Anforderungsfilterung
In diesem Artikel wird erläutert, wie Sie Ihre Container-Apps mithilfe einer Webanwendungsfirewall (WAF) im Azure-Anwendungsgateway mit einer internen Container-Apps-Umgebung schützen.
Weitere Informationen zu Netzwerkkonzepten in Container Apps finden Sie unter Netzwerkumgebung in Azure Container Apps.
Voraussetzungen
Interne Umgebung mit virtuellem Netzwerk: Verwenden Sie eine Container-App, die sich in einer internen Umgebung befindet und in ein virtuelles Netzwerk integriert ist. Weitere Informationen zum Erstellen einer integrierten App für virtuelle Netzwerke finden Sie unter Bereitstellen eines virtuellen Netzwerks für eine interne Azure-Container-Apps-Umgebung.
Sicherheitszertifikate: Wenn Sie tls/SSL-Verschlüsselung für das Anwendungsgateway verwenden müssen, benötigen Sie ein gültiges öffentliches Zertifikat, um eine Bindung an Ihr Anwendungsgateway herzustellen.
Abrufen der Domäne Ihrer Container-App
Führen Sie die folgenden Schritte aus, um die Werte der Standarddomäne und der statischen IP abzurufen und damit Ihre private DNS-Zone einzurichten.
Wählen Sie im Portal im Fenster Übersicht der Ressourcengruppe Ihre Container-App aus.
Wählen Sie im Fenster "Übersicht" für Ihre Container-App-Ressource den Link für die Container-Apps-Umgebung aus.
Wählen Sie im Fenster Übersicht für Ihre Container-App-Umgebungsressource JSON-Ansicht in der oberen rechten Ecke der Seite aus, um die JSON-Darstellung der Container Apps-Umgebung anzuzeigen.
Suchen Sie in der JSON-Ansicht den
propertiesAbschnitt, und suchen Sie die folgenden Werte:Standarddomäne: Suchen nach
properties.defaultDomainoderproperties.environmentFqdnStatische IP: Suchen Sie nach
properties.staticIp
Kopieren Sie diese Werte, und fügen Sie sie in einen Text-Editor ein. Sie verwenden den Standarddomänenwert, wenn Sie im nächsten Abschnitt eine private DNS-Zone erstellen.
Erstellen und Konfigurieren einer privaten Azure-DNS-Zone
Führen Sie die folgenden Schritte aus, um eine azure Private DNS-Zone zu erstellen und zu konfigurieren:
Öffnen Sie das Azure-Portal.
Geben Sie in der Suchleiste Private DNS Zone ein.
Wählen Sie in den Suchergebnissen die Option Private DNS-Zone aus.
Wählen Sie "Erstellen" aus.
Geben Sie die folgenden Werte ein:
Einstellung Aktion Abonnement Wählen Sie Ihr Azure-Abonnement. Ressourcengruppe Wählen Sie die Ressourcengruppe Ihrer Container-App aus. Name Geben Sie die Standarddomäneneigenschaft der Container-Apps-Umgebung aus dem vorherigen Abschnitt (entweder defaultDomainoderenvironmentFqdn) ein.Ressourcengruppenstandort Behalten Sie die Standardeinstellung bei. Sie benötigen keinen Wert, da private DNS-Zonen global sind. Klicken Sie auf Überprüfen + erstellen. Wählen Sie Erstellen aus, wenn die Validierung erfolgreich war.
Nachdem die private DNS-Zone erstellt wurde, wählen Sie Zu Ressource wechseln aus.
Wählen Sie im Fenster "Übersicht " +Datensatzsatz aus, um einen neuen Datensatzsatz hinzuzufügen.
Geben Sie im Fenster Datensatzgruppe hinzufügen die folgenden Werte ein:
Einstellung Aktion Name Geben Sie * ein. type Wählen Sie A-Adressdatensatz aus. TTL Lassen Sie die Standardwerte unverändert. TTL-Einheit Lassen Sie die Standardwerte unverändert. IP-Adresse Geben Sie die statische IP-Eigenschaft der Container-Apps-Umgebung aus dem vorherigen Abschnitt ( staticIp) ein.Wählen Sie OK aus, um die Datensatzgruppe zu erstellen.
Wählen Sie erneut +Record set aus, um eine zweite Datensatzgruppe hinzuzufügen.
Geben Sie im Fenster Datensatzgruppe hinzufügen die folgenden Werte ein:
Einstellung Aktion Name Geben Sie @ ein. type Wählen Sie A-Adressdatensatz aus. TTL Lassen Sie die Standardwerte unverändert. TTL-Einheit Lassen Sie die Standardwerte unverändert. IP-Adresse Geben Sie die statische IP-Eigenschaft der Container-Apps-Umgebung aus dem vorherigen Abschnitt ( staticIp) ein.Wählen Sie OK aus, um die Datensatzgruppe zu erstellen.
Wählen Sie im Menü auf der linken Seite das Fenster VNet-Verknüpfungen aus.
Wählen Sie + Hinzufügen aus, um eine neue Verknüpfung mit den folgenden Werten zu erstellen:
Einstellung Aktion Linkname Geben Sie "my-vnet-pdns-link" ein. Ich kenne die Ressourcen-ID des virtuellen Netzwerks. Lassen Sie sie deaktiviert. Virtuelles Netzwerk Wählen Sie das virtuelle Netzwerk aus, in das Ihre Container-App integriert ist. Automatische Registrierung aktivieren Lassen Sie sie deaktiviert. Wählen Sie OK aus, um die VNet-Verknüpfung zu erstellen.
Erstellen und Konfigurieren einer Azure Application Gateway-Instanz
Führen Sie die folgenden Schritte aus, um ein Azure-Anwendungsgateway zu erstellen und zu konfigurieren:
Öffnen Sie das Azure-Portal.
Geben Sie in der Suchleiste Application Gateway ein.
Wählen Sie in den Suchergebnissen Application Gateway aus.
Geben Sie nun die erforderlichen Details auf den Registerkarten Grundlagen , Frontends , Backends und Konfiguration ein.
Registerkarte „Grundlagen“
Führen Sie die folgenden Schritte durch:
Geben Sie im Abschnitt Projektdetails die folgenden Werte ein.
Einstellung Aktion Abonnement Wählen Sie Ihr Azure-Abonnement. Ressourcengruppe Wählen Sie die Ressourcengruppe für Ihre Container-App aus. Name des Anwendungsgateways Geben Sie my-container-apps-agw ein. Region Wählen Sie den Speicherort aus, an dem Sie Ihre Container-App bereitgestellt haben. Tarif Wählen Sie WAF V2 aus. Sie können Standard V2 verwenden, wenn Sie WAF nicht benötigen. Autoskalierung aktivieren Behalten Sie den Standard bei. Für Produktionsumgebungen wird automatische Skalierung empfohlen. Weitere Informationen finden Sie unter Automatische Skalierung von Azure Application Gateway. Verfügbarkeitszone Wählen Sie Keine. Für Produktionsumgebungen werden Verfügbarkeitszonen für höhere Verfügbarkeit empfohlen. HTTP2 Behalten Sie den Standardwert bei. WAF-Richtlinie Wählen Sie Neu erstellen aus, und geben Sie my-waf-policy für die WAF-Richtlinie ein. Klicken Sie auf OK. Wenn Sie Standard V2 als Dienstebene ausgewählt haben, überspringen Sie diesen Schritt. Virtuelles Netzwerk Wählen Sie das virtuelle Netzwerk aus, in das Ihre Container-App integriert ist. Subnetz Wählen Sie Subnetzkonfiguration verwalten aus. Wenn Sie bereits über ein Subnetz verfügen, das Sie verwenden möchten, wählen Sie dieses Subnetz aus, und fahren Sie mit dem Abschnitt "Frontends" fort. Wählen Sie im Subnetzfenster von my-vnet+Subnetz aus, und geben Sie die folgenden Werte ein:
Einstellung Aktion Name Geben Sie appgateway-subnet ein. Subnetzadressbereich Lassen Sie die Standardwerte unverändert. Übernehmen Sie bei den restlichen Einstellungen die Standardwerte.
Wählen Sie Speichern aus, um das neue Subnetz zu erstellen.
Schließen Sie das Fenster Subnetze, um zum Fenster Anwendungsgateway erstellen zurückzukehren.
Wählen Sie folgende Werte aus:
Einstellung Aktion Subnetz Wählen Sie das erstellte Subnetz appgateway-subnet aus. Wählen Sie "Weiter" aus: Frontends , um fortzufahren.
Registerkarte „Front-Ends“
Führen Sie die folgenden Schritte durch:
Geben Sie auf der Registerkarte Front-Ends folgende Werte ein:
Einstellung Aktion Typ der Front-End-IP-Adresse Wählen Sie Öffentlich aus. Öffentliche IP-Adresse Wählen Sie Neue hinzufügen aus. Geben Sie my-frontend für den Namen Ihres Front-Ends ein, und wählen Sie OK aus. Hinweis
Für die Anwendungsgateway-SKU v2 benötigen Sie eine öffentliche Front-End-IP. Weitere Informationen finden Sie unter Unterstützung öffentlicher und privater IP-Adressen und Verwalten einer öffentlichen IP-Adresse mit einem Azure Application Gateway.
Klicken Sie auf Weiter: Back-Ends .
Registerkarte „Back-Ends“
Der Back-End-Pool leitet Anforderungen an die entsprechenden Back-End-Server weiter. Sie können Back-End-Pools aus einer beliebigen Kombination der folgenden Ressourcen erstellen:
- NICs
- Öffentliche IP-Adressen
- Interne IP-Adressen
- Virtual Machine Scale Sets
- Vollqualifizierte Domänennamen (Fully Qualified Domain Names, FQDNs)
- Mehrinstanzenfähige Back-Ends wie Azure App Service und Container-Apps
In diesem Beispiel erstellen Sie einen Back-End-Pool, der auf Ihre Container-App ausgerichtet ist.
Führen Sie die folgenden Schritte aus, um einen Back-End-Pool zu erstellen:
Wählen Sie Back-End-Pool hinzufügen aus.
Öffnen Sie eine neue Registerkarte, und wechseln Sie zu Ihrer Container-App.
Suchen Sie im Fenster Übersicht der Container-App die Anwendungs-URL, und kopieren Sie sie.
Kehren Sie zur Registerkarte Back-Ends zurück, und geben Sie die folgenden Werte in das Fenster Back-End-Pool hinzufügen ein:
Einstellung Aktion Name Geben Sie my-agw-backend-pool ein. Back-End-Pool ohne Ziele hinzufügen Wählen Sie also Nein. Zieltyp Wählen Sie IP-Adresse oder FQDN aus. Ziel Geben Sie die Anwendungs-URL der Container-App ein, die Sie kopiert haben, und entfernen Sie das Präfix https://. Dieser Speicherort ist der FQDN Ihrer Container-App. Wählen Sie Hinzufügen.
Wählen Sie auf der Registerkarte Back-Ends die Option Weiter: Konfiguration aus.
Registerkarte „Konfiguration“
Auf der Registerkarte "Konfiguration " verbinden Sie den Frontend- und Back-End-Pool, den Sie mithilfe einer Routingregel erstellt haben.
Führen Sie die folgenden Schritte aus, um den Front-End- und Back-End-Pool zu verbinden:
Wählen Sie Routingregel hinzufügen aus. Geben Sie die folgenden Werte ein:
Einstellung Aktion Name Geben Sie my-agw-routing-rule ein. Priority Geben Sie 1 ein. Geben Sie auf der Registerkarte „Listener“ die folgenden Werte ein:
Einstellung Aktion Name des Listeners Geben Sie my-agw-listener ein. Front-End-IP Wählen Sie Öffentlich aus. Protokoll Wählen Sie HTTPS aus. Wenn Sie kein Zertifikat haben, das Sie verwenden möchten, können Sie HTTP auswählen. Hafen Geben Sie 443 ein. Wenn Sie HTTP für Ihr Protokoll ausgewählt haben, geben Sie 80 ein, und fahren Sie mit dem Abschnitt für standardmäßige/benutzerdefinierte Domänen fort. Auswählen eines Zertifikats Wählen Sie Zertifikat hochladen aus. Wenn Ihr Zertifikat im Schlüsseltresor gespeichert ist, können Sie Zertifikat aus Key Vault auswählen auswählen. Zertifikatname Geben Sie für Ihr Zertifikat einen Namen ein. PFX-Zertifikatsdatei Wählen Sie ein gültiges öffentliches Zertifikat aus. Kennwort Geben Sie das Zertifikatkennwort ein. Wenn Sie die Standarddomäne verwenden möchten, geben Sie die folgenden Werte ein:
Einstellung Aktion Listenertyp Wählen Sie Basic aus. URL zur Fehlerseite Übernehmen Sie die Einstellung Nein. Wenn Sie eine benutzerdefinierte Domäne verwenden möchten, geben Sie alternativ die folgenden Werte ein:
Einstellung Aktion Listenertyp Wählen Sie Für mehrere Standorte aus. Hosttyp Wählen Sie Einzeln aus. Hostnamen Geben Sie die benutzerdefinierte Domäne ein, die Sie verwenden möchten. URL zur Fehlerseite Übernehmen Sie die Einstellung Nein. Wählen Sie die Registerkarte Back-End-Ziele aus, und geben Sie die folgenden Werte ein:
Schalten Sie auf die Registerkarte Back-End-Ziele um, und geben Sie die folgenden Werte ein:
Einstellung Aktion Zieltyp Wählen Sie den Pool my-agw-back-pool aus, den Sie zuvor erstellt haben. Back-End-Einstellungen Wählen Sie Neue hinzufügen aus. Geben Sie im Fenster Back-End-Einstellung hinzufügen die folgenden Werte ein:
Einstellung Aktion Name der Back-End-Einstellungen Geben Sie my-agw-backend-setting ein. Back-End-Protokoll Wählen Sie HTTPS aus. Back-End-Port Geben Sie 443 ein. Zertifikat einer bekannten Zertifizierungsstelle verwenden Wählen Sie Ja aus. Mit neuem Hostnamen überschreiben Wählen Sie Ja aus. Hostnamen außer Kraft setzen Wählen Sie Hostnamen aus Back-End-Ziel auswählen aus. Benutzerdefinierte Tests erstellen Wählen Sie also Nein. Konfigurieren Sie unter "Anforderungsheader neu schreiben" die folgenden Einstellungen:
- Anforderungsheader neu schreiben aktivieren: Wählen Sie "Ja" aus.
- Hinzufügen eines Anforderungsheaders:
- Header-Name:
X-Forwarded-Host - Wert:
{http_req_host}
- Header-Name:
Diese Aktion stellt sicher, dass der ursprüngliche
HostHeader aus der Clientanforderung beibehalten und von der Back-End-Anwendung zugänglich ist.Wählen Sie "Hinzufügen" aus, um die Back-End-Einstellungen hinzuzufügen.
Wählen Sie im Fenster Routingregel hinzufügen erneut die Option Hinzufügen aus.
Wählen Sie Weiter: Tags aus.
Wählen Sie "Weiter" aus: Überprüfen + Erstellen und wählen Sie dann "Erstellen" aus.
Hinzufügen einer privaten Verbindung zu Application Gateway
Sie können eine gesicherte Verbindung mit nur internen Container-App-Umgebungen herstellen, indem Sie einen privaten Link verwenden. Mit einem privaten Link kann Ihr Anwendungsgateway über das virtuelle Netzwerk mit Ihrer Container-App im Back-End kommunizieren.
Nachdem Sie das Anwendungsgateway erstellt haben, wählen Sie "Zur Ressource wechseln" aus.
Wählen Sie im Menü auf der linken Seite die Option Private Verbindung und dann Hinzufügen aus.
Geben Sie die folgenden Werte ein:
Einstellung Aktion Name Geben Sie my-agw-private-link ein. Subnetz der privaten Verbindung Wählen Sie das Subnetz aus, das Sie zum Erstellen der privaten Verknüpfung verwenden möchten. Front-End-IP-Konfiguration Wählen Sie die Front-End-IP-Adresse für Ihre Application Gateway-Instanz aus. Wählen Sie unter "Private IP-Adresseinstellungen" die Option "Hinzufügen" aus.
Wählen Sie unten im Fenster Hinzufügen aus.
Beibehalten des ursprünglichen Hostheaders für Umleitungen und SSO
Wenn Sie das Azure-Anwendungsgateway als Reverse Proxy konfigurieren und die Einstellung Überschreiben mit neuem Hostnamen aktivieren, wird der Host Header geändert. Das Ändern des Headers kann anwendungen beeinträchtigen, die auf dem ursprünglichen Hostwert basieren, um Umleitungs-URLs, absolute Links oder OpenID Connect (OIDC)-Authentifizierungsflüsse zu generieren.
Um den ursprünglichen Hostheader weiterzuleiten, können Sie ihn in den X-Forwarded-Host Header einfügen, indem Sie die Funktion zur Überschreibung von Anforderungsheadern des Anwendungsgateways verwenden.
Konfigurieren der X-Forwarded-Host Injektion
Um die X-Forwarded-Host Injection zu aktivieren:
Wählen Sie auf der Registerkarte " Konfiguration " den Abschnitt " Back-End-Einstellungen " der Routingregel ihres Anwendungsgateways aus:
- Aktivieren Sie die Anforderungsheaderumschreibung.
- Fügen Sie einen neuen Anforderungsheader mit den folgenden Werten hinzu:
- Header-Name:
X-Forwarded-Host - Wert:
{http_req_host}
- Header-Name:
Ihre Back-End-App kann nun den ursprünglichen Anforderungshost mithilfe des
X-Forwarded-HostHeaders lesen.
Hinweis
Stellen Sie beim Konfigurieren von Regeln zum Umschreiben von Headern sicher, dass Sie die richtige Variablesyntax verwenden. Servervariablen müssen das entsprechende Präfix verwenden, wie z. B. http_req_ für Anforderungsheader. Informationen zur Problembehandlung bei Fehlern bei der Neuschreibregelkonfiguration finden Sie unter "Neuschreiben von HTTP-Headern und URL mit Anwendungsgateway".
Überprüfen der Container-App
Suchen Sie auf der Seite Übersicht des Anwendungsgateways nach der öffentlichen IP-Adresse für das Anwendungsgateway. Alternativ können Sie auch nach der Adresse suchen. Wählen Sie zum Suchen Alle Ressourcen aus, und geben Sie my-container-apps-agw-pip in das Suchfeld ein. Wählen Sie dann die IP-Adresse in den Suchergebnissen aus.
Wechseln Sie zur öffentlichen IP-Adresse des Anwendungsgateways.
Ihre Anforderung wird automatisch an die Container-App weitergeleitet. Dadurch wird überprüft, ob das Anwendungsgateway erfolgreich erstellt wurde.
Bereinigen von Ressourcen
Wenn Sie die von Ihnen erstellten Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe. Wenn Sie die Ressourcengruppe löschen, werden auch alle zugehörigen Ressourcen entfernt.
So löschen Sie die Ressourcengruppe:
Wählen Sie im Menü des Azure-Portals die Option Ressourcengruppen aus, oder suchen Sie nach Ressourcengruppen, und wählen Sie die entsprechende Option aus.
Suchen Sie auf der Seite Ressourcengruppen nach my-container-apps, und wählen Sie diese Ressourcengruppe aus.
Wählen Sie auf der Seite Ressourcengruppe die Option Ressourcengruppe löschen aus.
Geben Sie "my-container-apps " unter "TYP THE RESOURCE GROUP NAME " ein, und wählen Sie dann "Löschen" aus.