Base de conocimientos
1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Hacer que funcione constantemente una aplicación node.js en servidor Cloud
Esta guía explica cómo conseguir que funcione siempre una aplicación node.js, incluso después de un nuevo arranque del servidor Cloud.
Esta información la compartimos a título indicativo, y nuestro soporte no podrá asistirle en caso de problema para seguir estas instrucciones. Más información
1. Instalar la aplicación node.js
- Instalar la aplicación node.js deseada (ex.: Ghost, Laverna, etc.) siguiendo las instrucciones de su editor.
2. Instalar pm2h3>- conectarse con SSH al alojamiento correspondiente (ayuda)
- ejecutar el comando siguiente:
npm install pm2 -g
npm install -g knex-migrator
3. Configurar el despliegue de Ghost
- Ejecutar el comando siguiente:
cd website-folder
pwd - Anotar la ruta de la carpeta que da este comando
- Crear un archivo ecosystem.json que contenga:
{
"apps" : [{
"name" : "ghost",
"script" : "index.js",
"args" : [],
"watch" : true,
"node_args" : "",
"merge_logs" : true,
"cwd" : "le chemin fournis précédemment",
"env": {
"NODE_ENV": "production"
}
}]
} - Copiar el archivo de configuración:
cp config.production.json current/config.production.json - Iniciar la migración de base de datos:
cd current
NODE_ENV=production knex-migrator init - Iniciar la aplicación:
pm2 start ecosystem.json
4. Crear un script para ejecutar la aplicación Node.js en caso de interrupción
- Crear el script "start.sh" en la raíz del alojamiento con el contenido siguiente (no olvidarse de adaptar la ruta de la aplicación node.js) :
#! /bin/bash
source ~/.profile
pm2 show ghost -m | grep status | grep online > /dev/null
RUNNING=$?
if [ "${RUNNING}" -ne 0 ]; then
pm2 start ghost
fi; - Hacer que el script sea ejecutable (CHMOD 755):
chmod 755 start.sh - Crear un CRON para ejecutar el script cada minuto. Para eso, efectuar el comando SSH siguiente:
crontab -e - Añadir la directiva siguiente a través del editor de texto vi que se abre automáticamente (no olvidarse de adaptar la ruta del script; el comando SSH pwd permite mostrar la ruta de la carpeta en curso):
* * * * * /home/clients/XXXX/start.sh 1>/dev/null
Enlace a esta FAQ:
npm install pm2 -g
npm install -g knex-migrator
cd website-folder
pwd
{
"apps" : [{
"name" : "ghost",
"script" : "index.js",
"args" : [],
"watch" : true,
"node_args" : "",
"merge_logs" : true,
"cwd" : "le chemin fournis précédemment",
"env": {
"NODE_ENV": "production"
}
}]
}
cp config.production.json current/config.production.json
cd current
NODE_ENV=production knex-migrator init
pm2 start ecosystem.json
#! /bin/bash
source ~/.profile
pm2 show ghost -m | grep status | grep online > /dev/null
RUNNING=$?
if [ "${RUNNING}" -ne 0 ]; then
pm2 start ghost
fi;
chmod 755 start.sh
crontab -e
* * * * * /home/clients/XXXX/start.sh 1>/dev/null