Descubra 3 pasos para mantener node.js ejecutándose en un alojamiento compartido

Crear una aplicación node.js es una cosa. Asegurarse de que siempre esté operativo es otra. Este artículo detalla un enfoque simple para mantener su aplicación node.js en línea en alojamiento compartido.

 

Estos son los tres pasos a seguir:

 

  1.  - Escriba código robusto de node.js con rutinas de manejo de fallas y errores
  2.  - Utilice el administrador de procesos PM2 para detectar y reiniciar fallas inesperadas
  3.  - Configure crontab en el alojamiento compartido para verificar y reiniciar periódicamente

Escribe código robusto de node.js

Lo primero es lo primero. Comience escribiendo su código de la manera recomendada en node.js. Eso significa, use llamadas asincrónicas para funciones que pueden llevar algún tiempo. Además, detecta situaciones de error siempre que sea posible. Cuando experimente que su aplicación se detiene, averigüe por qué. Luego, detecte la situación por código, si es posible.

 

Utilice el administrador de procesos PM2

PM2 es un administrador de procesos de producción para node.js. PM2 monitorea su aplicación y la reinicia automáticamente cuando un evento inesperado hace que se bloquee. Instale PM2 usando:

npm install pm2

y úselo para iniciar su aplicación

pm2 start myapp.js

Una vez que ha comenzado así, PM2 enumera todas las aplicaciones en ejecución (sí, ¡puede darle varias aplicaciones si lo desea!) Y le muestra los detalles de cada una de ellas.

pm2 list

pm2 show <app-id>

 

Hasta aquí todo bien. Ahora bien, ¿qué sucede cuando el servidor de alojamiento compartido que ejecuta su aplicación se reinicia o, lo que es peor, se bloquea? Correcto, el proceso de PM2 se mata y no se reinicia automáticamente. Lo mismo ocurre con su aplicación.

 

Para manejar también esa situación, se necesita una tercera medida.

 

Configurar crontab en alojamiento compartido

Un crontab que puede ver como una lista de comandos que deben ejecutarse en momentos específicos. Estos tiempos pueden ser intervalos fijos (digamos, por ejemplo, cada 5 minutos) o eventos del sistema (por ejemplo, reinicio del servidor de alojamiento compartido).

 

Crontab se utiliza aquí para:

 

  1.  - comprobar periódicamente y en el servidor reiniciar el estado de la aplicación, y
  2.  - reinicie el proceso de PM2 en caso de que se encuentre muerto

 

De esta manera, se minimiza el tiempo de inactividad de la aplicación node.js en el alojamiento compartido. Comience escribiendo un script que verifique el estado de ejecución de su aplicación:

#!/bin/bash
ps cax | grep node > /dev/null
if [ $? -eq 0 ]; then
  echo "Process is running." >/dev/null 2>&1
else
  echo "Process is not running."
  PATH=$PATH:/usr/local/bin
  pm2 start /path/to/your/node/application
fi

Este código verificará si se está ejecutando un proceso llamado "node" y, si no, lo reinicia usando pm2. Ahora agregue la ejecución periódica de este código usando cPanel como un trabajo cron que se ejecuta cada 5 minutos:

 

sh /path/to/your/script

 

Al implementar estas tres medidas, nos aseguramos de que nuestra aplicación node.js siga ejecutándose en un alojamiento compartido. En caso de falla inesperada, PM2 lo detectará y reiniciará. En caso de inactividad o reinicio del servidor, un script personalizado que se ejecuta periódicamente detecta la situación y reinicia la aplicación automáticamente.

 

Además de todo esto, puede configurar cPanel para enviar correos electrónicos cuando un trabajo cron produce una salida. De esta manera, recibe una notificación cuando la aplicación está inactiva y se reinicia.

 

  • nodejs, hosting compartido
  • 2 Los Usuarios han Encontrado Esto Útil
¿Fue útil la respuesta?

Artículos Relacionados

¿Cómo activo las Variables Globales en PHP?

Las Variables Globales en PHP están desactivadas por defecto. Pero algunos programas necesitan...

¿Puedo tener un password para proteger los directorios?

Si, usted puede activar los password para proteger sus directorios. La instalación de la...

¿Qué es SSI?

SSI es la abreviación de Server-Side Include.SSI está compuesto por una serie de...

¿Qué es un Proceso Cron?

Los procesos cron pueden ayudarle a automatizar ciertas tareas. Realizar copias de seguridad de...

Bandwidth Limit Exceeded , ¿Qué significa esto?

Este mensaje aparece en su web cuando ha consumido todo el tráfico...