n8n Producción: Configuración Seguridad y Escalado

2026.05.13
Technology
873 Words
n8n Producción: Configuración Seguridad y Escalado

Despliegue de n8n: Guía de Configuración en Producción

Parte 3 de 3. Parte 1: Configuración con Docker Compose | Parte 2: Guía de Manifiestos Kubernetes

Configuración en profundidad

Estos son los parámetros que siempre cambio desde sus valores predeterminados.

ParámetroPredeterminadoMi valor en producciónImpacto
EXECUTIONS_MODEregularqueueHabilita escalamiento horizontal
QUEUE_BULL_REDIS_DB01Aísla n8n de otros usuarios de Redis
N8N_CONCURRENCY_PRODUCTION_LIMIT-150Previene agotamiento de recursos
EXECUTIONS_TIMEOUT3600300Mata flujos descontrolados
N8N_DEFAULT_BINARY_DATA_MODEdefaultfilesystemManeja archivos grandes sin inflación de memoria

Verificación y pruebas

Después del despliegue, ejecuta estas verificaciones.

Verificación de salud

Terminal window
# Docker
curl -s http://localhost:5678/healthz | jq .
# Esperado: {"status":"ok"}
# Kubernetes
kubectl exec -n n8n deployment/n8n-main -- wget -qO- localhost:5678/healthz

Prueba de humo: Crear un flujo simple

  1. Inicia sesión en el editor.
  2. Crea un flujo con un Schedule Trigger (cada minuto) y un nodo Code que devuelva { "status": "ok" }.
  3. Actívalo.
  4. Verifica Executions: deberías ver marcas de verificación verdes cada minuto.

Prueba de carga

Usa la CLI de n8n o un bucle simple de shell para disparar webhooks:

Terminal window
for i in {1..100}; do
curl -X POST https://hooks.tudominio.com/webhook/test \
-H "Content-Type: application/json" \
-d '{"payload":"test"}' &
done
wait

Monitorea la CPU de los workers y la memoria de Redis durante la prueba.

Consideraciones de producción

Alta disponibilidad

  • Ejecuta 2+ réplicas de n8n-main detrás de un balanceador de carga con reconocimiento de sesión si necesitas HA para la UI. Ten en cuenta que n8n usa memoria local para algún estado, así que las sesiones persistentes o una sola réplica es más simple.
  • Ejecuta mínimo 3+ workers. Escala basado en la profundidad de la cola.
  • Usa PostgreSQL con respaldo. Ejecuto pg_dump nocturno a almacenamiento compatible con S3.

Monitoreo

Monitoreo estas métricas:

MétricaFuenteUmbral de alerta
Profundidad de colaRedis LLEN bull:jobs> 100 por 5 minutos
CPU de workerMétricas de Kubernetes> 80% por 10 minutos
Ejecuciones fallidasn8n API /executions> 5% en 10 minutos
Conexiones de base de datosPostgreSQL pg_stat_activity> 80% del máximo

Estrategia de actualización

Fija la etiqueta de imagen de n8n a una versión específica, nunca latest. Mi flujo de actualización:

  1. Prueba la nueva versión en un namespace de staging.
  2. Actualiza la etiqueta de imagen en Git.
  3. Despliega con kubectl rollout restart.
  4. Observa las ejecuciones por 30 minutos.
  5. Haz rollback con kubectl rollout undo si las tasas de error se disparan.

Solución de problemas

Mensaje de errorCausaSolución
ECONNREFUSED 127.0.0.1:5432n8n no puede alcanzar PostgreSQLVerifica el nombre del servicio y la conectividad de red
Queue is not enabledWorker iniciado sin variables de entorno de colaEstablece EXECUTIONS_MODE=queue en main y QUEUE_BULL_REDIS_HOST en workers
Encryption key not setFalta N8N_ENCRYPTION_KEYAgrégalo a los secretos y reinicia
Webhook 404Flujo no activo o URL incorrectaActiva el flujo y verifica la ruta del webhook
Out of memoryWorkers excediendo límitesAumenta el límite de memoria o agrega más workers

Preguntas frecuentes

¿Qué es n8n y en qué se diferencia de Zapier?

n8n es una plataforma de automatización de flujos de trabajo de código abierto. A diferencia de Zapier, tú lo autohospedas, lo que significa que posees tus datos, tus credenciales nunca salen de tu infraestructura y no estás limitado por niveles de uso o límites de tasa.

¿Necesito una GPU para ejecutar n8n?

No. n8n se ejecuta solo en CPU. Solo necesitas una GPU si conectas el nodo AI Agent de n8n a un LLM autohospedado como Ollama o vLLM ejecutándose en el mismo cluster.

¿Qué es el queue mode y cuándo lo necesito?

El queue mode separa la UI web de los workers de ejecución de flujos usando Redis como cola de trabajos. Lo necesitas tan pronto ejecutes más de un puñado de flujos concurrentes o requieras escalamiento horizontal.

¿Puedo ejecutar n8n sin PostgreSQL?

Sí, n8n viene con SQLite por defecto. Sin embargo, SQLite no maneja bien las escrituras concurrentes y se corromperá bajo carga. Usa PostgreSQL para cualquier despliegue serio.

¿Cómo hago un respaldo de mi instancia de n8n?

Respaldar dos cosas: la base de datos PostgreSQL (pg_dump) y el directorio ~/.n8n (o el volumen montado) que contiene las claves de encriptación y datos binarios locales. Sin la clave de encriptación, tus credenciales son irrecuperables.

¿Está listo para producción el nodo AI Agent de n8n?

Está listo para herramientas internas y triaje de alertas. Yo no confiaría en él todavía para remediación autónoma en producción sin compuertas de aprobación humana. Siempre mantén a un humano en el bucle para acciones destructivas.

¿Cómo aseguro los webhooks expuestos a internet?

Usa un subdominio dedicado, habilita TLS, agrega autenticación basada en encabezados y lista blanca de IPs donde sea posible. Considera poner los webhooks detrás de un proxy inverso con límite de tasa.

¿Puedo usar n8n con vLLM en lugar de Ollama?

Absolutamente. Ambos exponen una API compatible con OpenAI. Apunta el nodo HTTP Request o el nodo OpenAI Chat Model a la URL de tu servicio vLLM y establece el nombre del modelo en consecuencia.

Próximos pasos

Ahora tienes un despliegue de n8n listo para producción con queue mode, credenciales encriptadas y capacidades de AI Agent. Aquí es donde explorar a continuación:

Si te encuentras con problemas no cubiertos aquí, deja un comentario con los detalles de tu configuración y te ayudaré a depurarlo.


Partes en esta serie: Parte 1: Configuración con Docker Compose ← | Parte 2: Guía de Manifiestos Kubernetes ←

# N8N # ai-automation # workflow # docker # Kubernetes # redis # postgresql # deployment # self-hosted