Guía de despliegue

Desplegar una aplicación Node.js en un VPS

Desplegar en un VPS Cloud →

Tutorial

Desplegar una aplicación Node.js en un VPS

Desarrollo3 min de lectura6 pasos

Poner en producción una aplicación Node.js exige más que un simple `node app.js`: hace falta un gestor de procesos que reinicie la aplicación si se cae, un reverse proxy para el HTTPS y un arranque automático con el sistema. En un VPS, usted domina cada eslabón de esa cadena, al contrario que en una plataforma gestionada que le factura por uso.

Contenido· ¿Por qué desplegar Node.js en un VPS en lugar de en una plataforma gestionada?1/4
  1. 01¿Por qué desplegar Node.js en un VPS en lugar de en una plataforma gestionada?
  2. 02Lo que gana con un VPS para Node.js
  3. 03Requisitos previos
  4. 04Desplegar una aplicación Node.js en producción

¿Por qué desplegar Node.js en un VPS en lugar de en una plataforma gestionada?

Las plataformas serverless y PaaS resultan prácticas al principio, pero su coste sube con el tráfico e imponen restricciones (timeouts, cold starts, límites de conexiones WebSocket). Un VPS le da un proceso Node.js persistente, conexiones largas (WebSocket, SSE) sin límite artificial, recursos dedicados y un coste fijo previsible. Usted decide la versión de Node, el gestor de procesos, el reverse proxy y la estrategia de actualización, sin depender de las convenciones de un proveedor.

Lo que gana con un VPS para Node.js

  • Proceso Node.js persistente, ideal para WebSocket, SSE y tareas largas sin cold start
  • Reinicio automático en caso de caída y al reiniciar el servidor gracias a PM2
  • Modo cluster para aprovechar todos los núcleos de CPU del VPS sin cambiar su código
  • Reverse proxy Nginx delante de Node para el HTTPS, la compresión y los archivos estáticos
  • Coste fijo y previsible, sin facturación por petición ni sorpresas de escalado
  • Control total de la versión de Node.js y de las dependencias del sistema

Requisitos previos

Una aplicación Node.js estándar (API Express, Nest, Fastify) funciona con holgura en un VPS de 1 a 2 vCPU y de 1 a 2 GB de RAM; prevea más RAM si compila un front pesado en el build o ejecuta workers. Instale Node.js mediante nvm o el repositorio NodeSource para fijar una versión LTS, además de PM2 como gestor de procesos y Nginx como reverse proxy. Necesita un dominio que apunte a la IP del VPS y los puertos 80/443 abiertos.

Desplegar una aplicación Node.js en producción

  1. Preparar el VPS e instalar Node.js

    En un VPS Ubuntu 22.04, actualice el sistema e instale una versión LTS de Node mediante nvm (nvm install --lts) o el repositorio NodeSource. Compruebe: node -v y npm -v. Cree un usuario sin privilegios de root dedicado a la aplicación en lugar de ejecutarlo todo como root.

  2. Recuperar el código y compilar

    Clone su repositorio en el VPS, instale las dependencias de producción (npm ci --omit=dev) y lance el build si es necesario (npm run build). Coloque las variables sensibles en un archivo .env no versionado o en las variables de entorno del servicio.

  3. Lanzar la aplicación con PM2

    Instale PM2 de forma global (npm install -g pm2) y arranque después la aplicación: pm2 start app.js --name monapp -i max. El flag -i max activa el modo cluster en todos los núcleos. PM2 relanza automáticamente el proceso si se cae.

  4. Activar el arranque automático con el sistema

    Genere el script systemd con pm2 startup, ejecute el comando que aparece y fije después el estado actual con pm2 save. En el siguiente reinicio del VPS, su aplicación se relanzará automáticamente, sin intervención.

  5. Configurar Nginx como reverse proxy

    Instale Nginx y cree un virtual host para su dominio que haga de proxy hacia el puerto local de Node (ej.: proxy_pass http://localhost:3000;). Añada las cabeceras Upgrade y Connection si utiliza WebSocket. Pruebe la configuración (nginx -t) y recárguela.

  6. Asegurar en HTTPS con Let's Encrypt

    Instale Certbot y su plugin de Nginx y ejecute después certbot --nginx -d votredomaine.com. Certbot obtiene el certificado, configura la redirección HTTP→HTTPS y programa la renovación automática. Su aplicación Node se sirve ya en HTTPS.

Para despliegues sin interrupción, combine PM2 en modo cluster con pm2 reload monapp en lugar de restart: PM2 reinicia los workers uno a uno y mantiene siempre al menos una instancia disponible durante la actualización. Vigile después la memoria con pm2 monit y fije un límite de reinicio automático (--max-memory-restart 500M) para prevenir las fugas de memoria en producción.

Ponga su aplicación Node.js en producción en un VPS Cloud

Despliegue un VPS Cloud ServOrbit con la plantilla Desarrollo: Node.js, PM2 y Nginx preconfigurados para pasar su aplicación a producción en HTTPS.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva