Quando usar o Kestrel com um proxy reverso

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 communicates directly with the Internet without a reverse proxy server

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

Kestrel communicates indirectly with the Internet through a reverse proxy server, such as IIS, Nginx, or 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.
  • Ele fornece uma camada adicional de configuração e defesa.
  • 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