Corriendo nuestras web apps en Kestrel usando Apache como servidor proxy

Hablando la otra vez con los muchachos del ASP.NET Latam StandUp surgió la idea de correr nuestras web apps en Kestrel  usando Apache como servidor proxy. Por lo tanto con mi compañero @camboris – al cual le agradezco que comparta su tiempo y su conocimiento conmigo – nos pusimos una tarde a jugar un poco y logramos publicar nuestra aplicación en ese escenario.

Antes que nada vamos a dejar que la documentación oficial de ASP.NET nos cuente muy brevemente que es Kestrel:

Kestrel is a cross-platform web server based on libuv, a cross-platform asynchronous I/O library.

Pero ojo…

Kestrel is designed to be run behind a proxy (for example IIS or Nginx) and should not be deployed directly facing the Internet.

No voy a entrar en detalles técnicos, con esto solo quiero recordarles que Kestrel no fue diseñado para estar expuesto a Internet, por lo que debemos configurar un server proxy que le sirva los requests a Kestrel y que además ofrezca características que este último no tiene, como capacidad para virtual hosts, security y logging.

Si nos vamos al mundo Linux las dos opciones clásicas a la hora de elegir servidores son Nginx y Apache. En la documentación oficial y otros enlaces, como el que menciono a continuación, podemos encontrar como configurar Nginx para esta función.

En este post vamos a explicar como configurar Apache para que funcione como reverse server proxy y voy a usar como guía el post Publishing an ASP.NET Core website to a cheap Linux VM host del gran Scott Hanselman.

Sigue leyendo

Anuncios