Verwenden von Kestrel mit einem Reverseproxy

Kestrel kann eigenständig oder mit einem Reverseproxyserver verwendet werden. Ein Reverseproxyserver empfängt HTTP-Anforderungen aus dem Netzwerk und leitet diese an Kestrel weiter. Beispiele für einen Reverseproxyserver:

Kestrel bei Verwendung als Webserver mit direkter Internetverbindung:

Kestrel communicates directly with the Internet without a reverse proxy server

Kestrel bei Verwendung in einer Reverseproxykonfiguration:

Kestrel communicates indirectly with the Internet through a reverse proxy server, such as IIS, Nginx, or Apache

Jede der beiden Konfigurationen – mit oder ohne einen Reverseproxyserver – stellt eine unterstützte Hostingkonfiguration dar.

Wenn Kestrel als Edgeserver ohne Reverseproxyserver verwendet wird, wird das gemeinsame Nutzen derselben IP-Adresse und desselben Ports für mehrere Prozesse nicht unterstützt. Wenn Kestrel für das Lauschen an einem Port konfiguriert ist, verarbeitet Kestrel den gesamten Datenverkehr für diesen Port unabhängig von den Host-Headern der Anforderungen. Ein Reverseproxy, der Ports freigeben kann, kann Anforderungen an Kestrel über eine eindeutige IP und einen eindeutigen Port weiterleiten.

Auch wenn kein Reverseproxyserver erforderlich ist, kann die Verwendung eines solchen empfehlenswert sein.

Für einen Reverseproxy gilt Folgendes:

  • Er kann die verfügbar gemachten öffentlichen Oberflächen der von ihm gehosteten Apps einschränken.
  • Stellt eine zusätzliche Ebene für Konfiguration und Schutz bereit.
  • Er lässt sich besser in die vorhandene Infrastruktur integrieren.
  • Vereinfacht die Konfiguration von Lastenausgleich und sicherer Kommunikation (HTTPS). Nur der Reverseproxyserver benötigt das X.509-Zertifikat für die öffentlichen Domänen. Dieser Server kann mit den Servern der App im internen Netzwerk über einfaches HTTP oder HTTPS mit lokal verwalteten Zertifikaten kommunizieren. Internes HTTPS erhöht die Sicherheit, bringt aber auch erheblichen Mehraufwand mit sich.

Warnung

Das Hosting in einer Reverseproxykonfiguration erfordert Hostfilterung.

Zusätzliche Ressourcen

Konfigurieren von ASP.NET Core zur Verwendung mit Proxyservern und Lastenausgleich