Skip to content

Cómo publicar un aplicativo Node.js en IIS

Un buen porcentaje de los usos que se le da a un aplicativo Node.js es exponerlo a algún entorno de red para ser consumido desde allí, y muy probablemente ese entorno de red se trata de nada más y nada menos que el internet. Cuando nos encontramos en una etapa puramente de desarrollo y aún durante la etapa de pruebas es normal dedicarnos a utilizar exclusivamente el localhost o la IP 127.0.0.1 y olvidarnos que en la vida real nuestro aplicativo estará expuesto a entornos mucho más dinámicos y cambiantes.

Desafortunadamente para muchos, el servidor web que terminaremos utilizando no siempre es nuestra primera elección. No siempre podemos utilizar NGINX o el siempre confiable Apache, en ocasiones nos veremos obligados a utilizar opciones menos deseables tales como el venerable Internet Information Services, mejor conocido como IIS.

Vernos forzados a utilizar IIS sin embargo no es el fin del mundo, ni significa que debemos encontrar formas esotéricas de publicar nuestro aplicativo. Es necesario sin embargo instalar dos extensiones de IIS que permitirán rutear las peticiones que llegan a un subdominio o subdirectorio hacia un aplicativo ejecutándose localmente en un puerto del servidor web. Estos módulos son los de reescritura de URLs (URL Rewrite) y petición de redireccionamiento de aplicación (Application Request Routing).

Una vez tenemos ambos módulos instalados abrimos IIS en el subfolder, subdominio o dominio que nos servirá como puerta de entrada para recibir las peticiones que queremos que lleguen hasta nuestro aplicativo Node.js y debemos ver los siguientes módulos disponibles:

Módulos requeridos para publicar un aplicativo Node.js desde Internet Information Services

Abrimos la opción URL Rewrite, luego la opción Add rule (Agregar regla) y seleccionamos la opción Reverse Proxy:

Es probable que aparezca una advertencia solicitando habilitar la funcionalidad de Proxy para esta modalidad. Si aparece dicha advertencia, es necesario confirmarla. Una vez confirmada, un nuevo formulario aparecerá y es acá donde finalmente utilizaremos la dirección local en donde se encuentra publicado nuestro aplicativo Node.js:

Agregamos la regla, reiniciamos IIS y validamos que al nueva regla esté configurada para el sitio, subdominio o subfolder deseado:

A partir de este punto dependemos de que nuestro aplicativo Node.js se encuentre siempre en ejecución. IIS ruteará todas las peticiones que se reciban en al URL que recién configuramos hacia el puerto local que hemos indicado pero dependerá de la disponibilidad del aplicativo ejecutándose en dicho puerto. Acá podemos utilizar paquetes tales como forever y pm2 para asegurarnos que nuestros procesos de Node.js se encuentren siempre en ejecución y administrados en segundo plano por una herramienta para dicho fin. Ya hablaremos de dichos paquetes en una ocasión futura.

Published inDesarrollo