Publicaciones de aplicaciones Node en IIS

Publicado el 05 febrero 2021 por Daniel Rodríguez @analyticslane

Si tenemos un Servidor Windows podemos usar Microsoft Internet Information Services (IIS) para publicar las aplicaciones creadas con Node. Lo que nos va a permitir tener publicadas en un mismo dominio diferentes aplicaciones Node junto a otras creadas con .NET. Siendo la publicación de aplicaciones Node en IIS una de las mejores opciones cuando se trabaja con Windows Server.

Requisitos en IIS para publicar aplicaciones Node

Para publicar las aplicaciones Node en IIS es necesario tener instalado Application Request Routing y URL Rewrite. En el caso que nuestra instalación de IIS no cuente con algunas de estas dos herramientas será necesario instalarlas. Application Request Routing se puede descargar desde su página de descarga, lo mismo que URL Rewrite. En ambos casos, la instalación se hace simplemente ejecutando el instalador como administrador, aceptando los términos y condiciones, confirmando el proceso de instalación y reincidiendo IIS.

Publicar "¡Hola Mundo!" de Node en IIS

A modo ejemplo vamos a publicar una aplicación "¡Hola Mundo!" de Node en IIS. Para lo que vamos a utilizar Express. Para ello simplemente se crea una carpeta y se guarda el siguiente archivo.

Posteriormente nos situamos en la carpeta donde se ha guardado el archivo y ejecutamos los comandos:

npm init -y npm install express node .\index.js

Lo que nos mostrará el mensaje "¡Hola Mundo!" al acceder con un navegador a la dirección http://localhost:3000/.

Publicación de la aplicación Node en IIS

Ahora que ya tenemos la aplicación en marcha solamente tenemos que ir al administrador de IIS y, bajo el sitio en el que deseamos publicar la aplicación, crear una nueva aplicación. Para lo que seleccionaremos el sitio y en el menú que se obtiene con el botón secundario seleccionaremos Agregar Aplicación. En la que le indicaremos un alias, que será el que se use para publicar la aplicación en el sitio, y la ruta donde se encuentra la aplicación en el disco duro. Es importante que esta no sea una carpeta a la que IIS no pueda acceder, como puede ser dentro de una cuenta de usuario.

Agregar aplicación en IIS

El grupo de aplicaciones tiene que ser uno en el que esté seleccionada la opción Sin código administrado.

Configuración del grupo de aplicaciones para Node

Creación de un proxy inverso

Una vez creada la aplicación es necesario crear un proxy inverso, para lo que usaremos URL Rewrite. Para lo que seleccionaremos la aplicación que acabamos de crear en IIS y seleccionaremos la Reescritura de direcciones URL (URL Rewrite).

Acceso a la reescritura de direcciones URL en ISS

Al abrir Reescritura de direcciones URL seleccionaremos la opción Agregar regla y dentro de esta Proxy inverso. Pulsando sobre el botón aceptar.

Creación de un proxy inverso

En el asistente que nos aparece solamente es necesario indicar el nombre del servidor donde se encuentra la aplicación Node, en nuestro caso este se encuentra en el puerto 3000 de nuestro servidor, esto es localhost:3000.

Creación de la regla para IIS

Acceso a la aplicación a través de IIS

Ahora simplemente tenemos que acceder al sitio donde hemos publicado la aplicación para ver que esta funciona correctamente.

Hacer que la aplicación Node se inicie de forma automática

En esta ocasión se ha lanzado la aplicación Node desde el terminal. Por lo tanto, cada vez que se cierre la sesión del usuario esta se caerá. Para mantener la aplicación Node en marcha se puede usar por ejemplo PM2. Lo que se ha visto en una entrada anterior.

Conclusiones

En esta entrada se ha visto cómo distribuir una aplicación Node en IIS. Una opción para aquellos que trabajan con Node en entornos Windows Server.

Imagen de Edgar Oliver en Pixabay