Quando usar o Kestrel com um proxy reverso

Observação

Esta não é a versão mais recente deste artigo. Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.

Aviso

Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, confira .NET e a Política de Suporte do .NET Core. Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.

Importante

Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.

Para informações sobre a versão vigente, confira a Versão do .NET 8 deste artigo.

Kestrel pode ser usado por si só ou com um servidor proxy reverso. Um servidor proxy reverso recebe solicitações HTTP da rede e as encaminha para o Kestrel. Os exemplos de servidores proxy reversos incluem:

Kestrel usado como um servidor Web de borda (voltado para a Internet):

Kestrel se comunica diretamente com a Internet, sem um servidor proxy reverso

Kestrel usado em uma configuração de proxy reverso:

Kestrel se comunica indiretamente com a Internet através de um servidor proxy reverso, tal como o IIS, o Nginx ou o Apache

Qualquer configuração – com ou sem servidor proxy reverso, é uma configuração de hospedagem compatível.

Quando Kestrel é usado como um servidor de borda sem um servidor proxy reverso, o compartilhamento do mesmo endereço IP e da mesma porta entre vários processos não é suportado. Quando o Kestrel é configurado para escutar uma porta, o Kestrel manipula todo o tráfego dessa porta, independentemente dos cabeçalhos de Host das solicitações. Um proxy reverso que pode compartilhar portas pode encaminhar solicitações para o Kestrel em um IP e porta exclusivos.

Mesmo se um servidor proxy reverso não for necessário, o uso de um servidor proxy reverso poderá ser uma boa opção.

Um proxy reverso:

  • Pode limitar a área da superfície pública exposta dos aplicativos que ele hospeda.
  • Fornece uma camada adicional de configuração e de segurança cibernética de defesa aprofundada.
  • Pode ser integrado melhor à infraestrutura existente.
  • Simplifica o balanceamento de carga e a configuração de comunicação segura (HTTPS). Somente o servidor proxy reverso requer o certificado X.509 no(s) domínio(s) público(s). Esse servidor pode se comunicar com os servidores do aplicativo na rede interna usando o HTTP simples ou HTTPS com certificados gerenciados localmente. O HTTPS interno aumenta a segurança, mas adiciona sobrecarga significativa.

Aviso

A hospedagem em uma configuração de proxy reverso exige a filtragem de host.

Recursos adicionais

Configurar o ASP.NET Core para trabalhar com servidores proxy e balanceadores de carga