n8n DevOps Automatización Linux Nginx SSL

Guía práctica: Cómo instalar n8n en un servidor Linux en producción con Nginx, SSL y PM2

E
Equipo Innovemus
Infraestructura
24 de September, 2026
7 min de lectura
Guía práctica: Cómo instalar n8n en un servidor Linux en producción con Nginx, SSL y PM2
Aprende a desplegar n8n en tu propio servidor Linux (Rocky Linux / RHEL / Ubuntu) sin comprometer tus entornos críticos. Incluye sizing de hardware, proxy inverso con Nginx, certificados SSL automáticos con Certbot y persistencia con PM2.

 

Introducción: ¿Por qué self-hosted para automatizaciones?

n8n se ha convertido en una de las plataformas de orquestación y automatización de flujos de trabajo más potentes del mercado. A diferencia de soluciones propietarias en la nube que cobran por cada ejecución o tarea, alojar tu propia instancia te otorga control absoluto sobre tus credenciales, privacidad de datos y ejecuciones ilimitadas.

Sin embargo, desplegar n8n en un entorno de producción real requiere prestar atención al dimensionamiento de hardware (sizing), aislamiento de servicios y configuración segura de red mediante HTTPS.

1. Dimensionamiento de Hardware: ¿Dónde instalarlo?

Antes de ejecutar cualquier comando, el primer error común es instalar n8n en el mismo servidor donde corren aplicaciones monolíticas o bases de datos críticas de producción con poca memoria (por ejemplo, 1 GB o 2 GB de RAM).

  • Consumo de memoria: n8n requiere un mínimo de 1 GB libre para arrancar, pero cuando procesa flujos complejos, bucles masivos o maneja archivos pesados en memoria, puede experimentar picos repentinos.
  • Riesgo del OOM Killer: En servidores con menos de 2 GB de RAM, un consumo elevado de n8n puede provocar que el sistema operativo mate procesos críticos como MySQL o tu servidor web.

Recomendación ideal: Un servidor o VPS independiente (ej. Rocky Linux / Ubuntu) con al menos 2 a 3 vCPUs y 4 GB de RAM. Esto garantiza estabilidad para procesar cientos de ejecuciones concurrentes sin cuellos de botella.

2. Instalación del entorno: Node.js 20 y PM2

n8n corre sobre el runtime de Node.js (versión 18 o 20 recomendadas). En sistemas basados en RHEL / Rocky Linux, habilitamos e instalamos el módulo oficial:

# Habilitar e instalar Node.js 20 dnf module enable -y nodejs:20 dnf install -y nodejs # Verificar versiones instaladas node -v npm -v 

Para asegurar que n8n se mantenga siempre en ejecución en segundo plano y se recupere ante cualquier caída, utilizamos PM2 como gestor de procesos:

npm install -g pm2 n8n 

3. Configuración de Proxy Inverso con Nginx

Por defecto, n8n escucha en el puerto local 5678. No es recomendable exponer este puerto directamente a internet. En su lugar, utilizamos Nginx como proxy inverso para manejar el tráfico en el puerto estándar 80 / 443 y dar soporte a WebSockets (necesarios para la interfaz gráfica en tiempo real y webhooks).

Creamos el archivo de configuración /etc/nginx/conf.d/n8n.conf:

server { listen 80; server_name n8n.tudominio.com; location / { proxy_pass http://127.0.0.1:5678; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Tiempos de espera extendidos para flujos largos proxy_read_timeout 300s; proxy_send_timeout 300s; } } 

Validamos y recargamos la configuración de Nginx:

nginx -t && systemctl reload nginx 

4. Asegurando con HTTPS: Certificado SSL con Certbot

Muchas integraciones modernas (como webhooks de Stripe, WhatsApp Cloud API o redes sociales) exigen de forma obligatoria conexiones cifradas bajo HTTPS.

Una vez que el registro DNS (tipo A) de tu subdominio apunte a la IP de tu servidor, ejecutamos Certbot para emitir e instalar el certificado de forma 100% automatizada:

certbot --nginx --agree-tos -m [email protected] -d n8n.tudominio.com 

Certbot modificará la configuración de Nginx para redirigir todo el tráfico HTTP a HTTPS de manera transparente.

5. Puesta en marcha con PM2 y Autoinicio en el arranque

Para inicializar n8n con las variables de entorno adecuadas (especialmente WEBHOOK_URL para que las URLs públicas de tus triggers se generen con HTTPS y tu dominio), ejecutamos:

# Iniciar n8n restringido a localhost con su webhook público N8N_HOST=127.0.0.1 WEBHOOK_URL=https://n8n.tudominio.com/ pm2 start n8n --name n8n --update-env # Guardar la lista de procesos activos pm2 save # Configurar el servicio para que inicie tras reinicios del sistema pm2 startup 

6. Comandos útiles para el día a día

Para supervisar tu nueva instancia, puedes usar los comandos nativos de PM2 directamente por SSH:

  • Ver estado y consumo de RAM/CPU: pm2 status
  • Consultar logs en tiempo real: pm2 logs n8n
  • Reiniciar la instancia: pm2 restart n8n

¡Listo! Al ingresar a https://n8n.tudominio.com tendrás tu entorno n8n en producción, protegido con SSL, optimizado en recursos y listo para automatizar tus procesos de negocio.

Compartir este artículo:
Newsletter Técnico

¿Te sirvió este análisis técnico?

Enviamos un solo correo al mes con aprendizajes reales de infraestructura, optimización en producción y arquitectura de software. Cero spam, garantizado.

Comunícate con nosotros:

Chatea por WhatsApp

Otras opciones:

Déjanos un mensaje
Nova Avatar
Nova Chatbot IA