Condividi tramite


Quando usare Kestrel con un proxy inverso

Nota

Questa non è la versione più recente di questo articolo. Per la versione corrente, vedere la versione .NET 8 di questo articolo.

Avviso

Questa versione di ASP.NET Core non è più supportata. Per altre informazioni, vedere Criteri di supporto di .NET e .NET Core. Per la versione corrente, vedere la versione .NET 8 di questo articolo.

Importante

Queste informazioni si riferiscono a un prodotto non definitive che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.

Per la versione corrente, vedere la versione .NET 8 di questo articolo.

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 comunica direttamente con Internet senza un server proxy inverso

Kestrel usato in una configurazione del proxy inverso:

Kestrel comunica indirettamente con Internet tramite un server proxy inverso, ad esempio IIS, Nginx o 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