¡La Odisea de Instalar n8n en IIS y No Morir en el Intento!
Read Time:5 Minute, 0 Second

¡La Odisea de Instalar n8n en IIS y No Morir en el Intento!

0 0

Lo que parecía ser una simple instalación de n8n en un servidor Windows con IIS terminó siendo un laberinto de configuraciones, errores 403, archivos estáticos rebeldes y redirecciones que parecían salidas de un episodio de Black Mirror. Pero al final, logramos domar la bestia.

Este artículo es mi bitácora de batalla: lo que hicimos mal, lo que aprendimos y la solución definitiva. Si estás intentando hacer lo mismo, ahórrate el trauma y sigue esta guía paso a paso. 😎


Requisitos previos

Antes de empezar, asegurate de tener lo siguiente:

✅ Un servidor Windows Server (mínimo 2 vCPU y 4GB RAM recomendados, nosotros lo tenemos en Contabo no sale tan caro).
✅ Acceso de administrador en tu servidor.
Node.js y npm instalados.


1. Primer Intento: Instalando n8n y Configurándolo en IIS

Paso 1: Instalamos Node.js y n8n

Antes de instalar n8n, necesitamos Node.js. Lo descargamos e instalamos desde nodejs.org:

winget install OpenJS.NodeJS

Aqui tenemos una explicación detallada para instalar Node.js

Una vez instalado, verificamos la versión:

node -v

Luego, instalamos n8n sin dramas:

npm install -g n8n

Paso 1.1: Configurar Variables de Entorno

Para que n8n se ejecute correctamente, agregaremos unas variables de entorno:

  1. En el Explorador de archivos, hacé clic derecho en Este PC > Propiedades.
  2. Seleccioná Configuración avanzada del sistema > Variables de entorno.
  3. En la sección Variables del sistema, buscá Path, seleccioná Editar y agregá: C:\Users\TU_USUARIO\AppData\Roaming\npm
  4. Aplicá los cambios y cerrá todo.

Todo bien hasta aquí. Ejecutamos n8n localmente y funcionaba perfecto en http://localhost:5678/n8n. Fácil, sin dramas:

Paso 1.2: Configurar n8n como un Servicio en Windows

Si cerrás la terminal, n8n se apaga. Para evitarlo, lo configuraremos como servicio con nssm (aquí hay una guía completa):

  1. Descargá nssm desde: nssm.cc/download
  2. Extraé el archivo en C:\nssm
  3. Abrí cmd como administrador y navegá a la carpeta:
    • cd C:\nssm\win64
  4. Creá un nuevo servicio para n8n:
    • nssm install n8n
  5. En la ventana que se abre:
    • En Path, seleccioná C:\Users\TU_USUARIO\AppData\Roaming\npm\n8n.cmd
    • En Startup directory, poné la misma ruta.
  6. Presioná Install service.
  7. Para arrancar el servicio, ejecutá:
nssm start n8n

🎯 Ahora n8n se ejecutará automáticamente al reiniciar el servidor.

Paso 2: Configurar IIS para Servir n8n

Aquí comenzaron los problemas. La idea era acceder a n8n desde el subdominio https://apps.zelvait.com/n8n, y para eso:

  • Creamos una nueva aplicación en IIS.
  • Configuramos una regla de «URL Rewrite» para redirigir las peticiones a localhost:5678.
  • Redirigimos HTTP a HTTPS porque nos gusta la seguridad.

Pero… pantalla en blanco. F12 en el navegador reveló un desfile de errores 404. 😱


2. El Problema: Archivos Estáticos y Redirecciones Locas

Los archivos *.js, *.css y favicon.ico no se estaban sirviendo correctamente. IIS intentaba buscarlos en https://apps.zelvait.com/assets/ en vez de https://apps.zelvait.com/n8n/assets/.

La razón: n8n esperaba estar en /n8n/, pero IIS lo servía como si estuviera en la raíz.

Intentamos:

  1. Ajustar N8N_BASE_PATH y WEBHOOK_URL en el archivo .env.
  2. Modificar la regla de URL Rewrite en IIS para corregir las rutas.
  3. Agregar MIME Types en IIS para .js y .css.

Nada funcionó. Era hora de cambiar la estrategia.

3. La Solución: Subdominio Exclusivo para n8n

Si n8n quiere ser especial, le damos su propio subdominio. Decidimos moverlo a n8n.zelvait.com y dejar de pelear con /n8n/.

Paso 1: Configurar el DNS

En Namecheap (si, nos gusta gastar poco), agregamos un nuevo registro A:

  • Host: n8n
  • Value: IP del servidor

Paso 2: Crear el Sitio en IIS

  1. Abrimos IIS Manager (inetmgr).
  2. Agregamos un nuevo sitio web:
    • Nombre: n8n
    • Physical Path: C:\inetpub\wwwroot (pero no lo usaremos realmente)
    • Binding:
      • Type: https
      • Host Name: n8n.zelvait.com

Paso 3: Configurar IIS como Reverse Proxy

  1. En IIS, seleccionamos n8n.zelvait.com.
  2. Vamos a «URL Rewrite» y creamos esta regla:
    • Pattern: (.*)
    • Rewrite URL: http://127.0.0.1:5678/{R:1}
    • ✅ «Append query string»
    • ✅ «Preserve host header»
    • ✅ «Stop processing of subsequent rules»
  3. Guardamos y reiniciamos IIS:
    • iisreset

Paso 4: Ajustar la Configuración de n8n

Editamos el archivo .env de n8n (si no existe, crealo):

N8N_HOST=n8n.zelvait.com
N8N_PORT=5678
N8N_PROTOCOL=http
N8N_BASE_PATH=/
WEBHOOK_URL=https://n8n.zelvait.com/

Guardamos y reiniciamos n8n:

net stop n8n
net start n8n

Paso 5: Eliminar la Regla de Redirección HTTPS de n8n.zelvait.com

Nos dimos cuenta de que la redirección HTTPS global también se aplicaba a n8n.zelvait.com, lo que causaba más problemas. La eliminamos y listo.

Paso 6: Problema Adicional – IIS Aplicó la Regla en el Sitio Incorrecto

Después de solucionar n8n, notamos que apps.zelvait.com estaba redirigiendo incorrectamente a n8n.zelvait.com. Descubrimos que la regla ReverseProxy_n8n también se había aplicado en Default Web Site. Para corregirlo:

  1. Verificamos en IIS y eliminamos ReverseProxy_n8n de Default Web Site.
  2. Borramos el archivo web.config en C:\inetpub\wwwroot, ya que contenía reglas no deseadas.
  3. Reiniciamos IIS:iisreset

Esto restauró el comportamiento correcto y evitó que apps.zelvait.com interfiriera con n8n.zelvait.com.


4. ¡Funciona! (Y Lo Que Aprendimos)

Después de todos estos ajustes, finalmente pudimos acceder a n8n en https://n8n.zelvait.com sin errores. Ya no más pantallas en blanco, ya no más 404 en los archivos estáticos.

Lecciones Aprendidas

💡 No pelees con N8N_BASE_PATH, si puedes, usa un subdominio exclusivo.
💡 IIS no es la mejor opción para aplicaciones Node.js, pero con Reverse Proxy funciona bien.
💡 Las reglas de URL Rewrite pueden ser traicioneras, pero bien configuradas, salvan vidas.
💡 Si IIS comienza a redirigir sitios incorrectamente, revisa web.config y elimina reglas duplicadas.

5. ¡Próximos Pasos!

Ahora que n8n está funcionando bien, los siguientes pasos son:

  • Configurar autenticación en n8n para evitar accesos no autorizados.
  • Hacer backups automáticos de workflows.
  • Optimizar el rendimiento del servidor.

Si esta guía te ahorró dolores de cabeza, compártela con alguien que también sufra configurando IIS. 😆🔥

¡Hasta la próxima odisea, colegas geeks! 🚀

💡 ¡A seguir automatizando como un pro! 🚀

Avatar for Carlos Zelaya Irías

About Post Author

Carlos Zelaya Irías

Carlos Alberto Zelaya Irías es un profesional hondureño especializado en tecnología, desarrollo de software y consultoría empresarial. Como CEO de ZelvaIT, educador universitario y divulgador en plataformas digitales, promueve la innovación tecnológica y la educación inclusiva. Apasionado por la ciberseguridad, metodologías ágiles y transformación digital, comparte conocimientos prácticos para empoderar a su comunidad
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Entrada anterior ¿Qué es NSSM (Non-Sucking Service Manager)?
Entrada siguiente 🚀 Capítulo 3: Conectando n8n con APIs externas. Obtención y uso de datos en flujos de trabajo