Quando usare Kestrel con un proxy inverso

Kestrel può essere usato da solo o con un server proxy inverso. Un server proxy inverso riceve le richieste HTTP dalla rete e le inoltra a Kestrel. Alcuni esempi di server proxy inverso includono:

Kestrel usato come server Web perimetrale (con connessione Internet):

Kestrel communicates directly with the Internet without a reverse proxy server

Kestrel usato in una configurazione del proxy inverso:

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

La configurazione, con o senza un server proxy inverso, è una configurazione di hosting supportata.

Quando Kestrel viene usato come server perimetrale senza un server proxy inverso, la condivisione dello stesso indirizzo IP e della porta tra più processi non è supportata. Quando Kestrel è configurato per l'ascolto su una porta, Kestrel gestisce tutto il traffico per tale porta indipendentemente dalle intestazioni delle Host richieste. Un proxy inverso in grado di condividere le porte può inoltrare le richieste a Kestrel su un indirizzo IP e una porta univoci.

Anche se la presenza di un server proxy inverso non è necessaria, può risultare utile per i motivi seguenti.

Un proxy inverso:

  • Può limitare l'area della superficie di attacco pubblica esposta delle app ospitate.
  • Fornisce un ulteriore livello di configurazione e difesa.
  • Potrebbe offrire un'integrazione migliore con l'infrastruttura esistente.
  • Semplifica il bilanciamento del carico e la configurazione della comunicazione sicura (HTTPS). Solo il server proxy inverso richiede il certificato X.509 per i domini pubblici. Tale server può comunicare con i server dell'app nella rete interna usando HTTP normale o HTTPS con certificati gestiti in locale. HTTPS interno aumenta la sicurezza, ma comporta un sovraccarico significativo.

Avviso

Una configurazione che prevede un proxy inverso richiede il filtro host.

Risorse aggiuntive

Configurare ASP.NET Core per l'utilizzo di server proxy e servizi di bilanciamento del carico