Casos en los que se puede usar Kestrel con un proxy inverso

Kestrel se puede usar por sí solo o con un servidor proxy inverso, como Internet Information Services (IIS), Nginx o Apache. Un servidor proxy inverso recibe las solicitudes HTTP de la red y las reenvía a Kestrel.

Kestrel empleado como servidor web perimetral (accesible desde Internet):

Kestrel se comunica directamente con Internet sin ningún servidor proxy inverso.

Kestrel empleado en una configuración de proxy inverso:

Kestrel se comunica indirectamente con Internet a través de un servidor proxy inverso, como IIS, Nginx o Apache.

Cualquiera de las configuraciones, con o sin servidor proxy inverso, es una configuración de hospedaje admitida.

Cuando se usa Kestrel como un servidor perimetral sin un servidor proxy inverso, no se permite compartir la misma dirección IP y el mismo puerto entre varios procesos. Si Kestrel se configura para escuchar en un puerto, Kestrel controla todo el tráfico de ese puerto, independientemente de los encabezados Host de las solicitudes. Un proxy inverso que puede compartir puertos puede reenviar solicitudes a Kestrel en una única dirección IP y puerto.

Aunque no sea necesario un servidor proxy inverso, su uso puede ser útil.

Un proxy inverso puede hacer lo siguiente:

  • Limitar el área expuesta públicamente de las aplicaciones que hospeda.
  • Proporcionar una capa extra de configuración y defensa.
  • Posiblemente, integrarse mejor con la infraestructura existente.
  • Simplificar el equilibrio de carga y la configuración de una comunicación segura (HTTPS). Solamente el servidor proxy inverso necesita un certificado X.509 y dicho servidor se puede comunicar con los servidores de la aplicación en la red interna por medio de HTTP sin formato.

Advertencia

El hospedaje en una configuración de proxy inverso requiere filtrado de hosts.

Recursos adicionales

Configuración de ASP.NET Core para trabajar con servidores proxy y equilibradores de carga