Variables
Título | Variable | Ejemplo | Descripción | Cambiar |
---|---|---|---|---|
Tu usuario | tu_usuario | ubuntu | El usuario de ubuntu que estamos utilizando. | |
Versión NodeJS | versión_nodejs | 14.x | La versión de NodeJS que queremos instalar. |
Instalar NodeJS en un servidor con Nginx en Ubuntu Server
Introducción
En esta publicación, vamos a aprender a instalar y configurar el entorno de NodeJS, sobre Nginx en Ubuntu Server 21.04.
Primeros Pasos
sudo su
apt update
apt upgrade
Añadir repositorio de NodeJS
Para tener la última versión de nodejs, vamos a añadir el repositorio nodesource, ya que APT no suele tener la última versión.
Con CURL, vamos a descargar el archivo bash que posteriormente ejecutaremos. Este archivo lo llamaremos nodesource_setup.sh.
cd ~
curl -sL https://deb.nodesource.com/setup_versión_nodejs -o nodesource_setup.sh
Una vez descargado, vamos a ejecutar el archivo que nos ha generado.
Si queremos ver que hace podemos ejecutar el segundo comando.
bash nodesource_setup.sh
nano nodesource_setup.sh
Instalar NodeJS
Instalar NodeJS con el repositorio APT
Lo primero que vamos a hacer es instalar nodejs.
apt install nodejs
Versiones
Si queremos ver que versión de nodejs y npm hemos instalado, podemos poner los siguientes comandos.
nodejs -v
npm -v
Instalaciones extra
apt install build-essential
Resultado
Llegados a este punto, ya disponemos de todos los paquetes necesarios para funcionar con npm.
Crear el backend
Crear el archivo server.js
Vamos a crear un ejemplo de backend nodejs para al final comprobar que todo ha salido bien.
Para esto, vamos a crear un archivo, server.js y vamos a introducirle el siguiente código.
cd ~
nano server.js
Comprobar que server.js funciona
La aplicación Node.js escucha la dirección especificada (localhost) y el puerto (3000), y responde “NodeJS works in Nginx!” con un código de éxito HTTP 200.
Al escuchar en localhost, los clientes remotos no podrán conectarse a nuestra aplicación.
node server.js
Instalar PM2
Instalar PM2
Ahora vamos a instalar un administrador de procesos para aplicaciones de Node.js.
PM2 permite implementar demonios en aplicaciones para que puedan funcionar en segundo plano como servicios.
Con la opción -g npm instalará el módulo de forma global, para que esté disponible en todo el sistema.
npm install pm2@latest -g
Iniciar server.js en segundo plano
Vamos a usar el comando pm2 start para ejecutar su aplicación, server.js, en segundo plano.
pm2 start server.js
Inicializar pm2 en el arranque
Con el siguiente comando pm2 se inicializará en el arranque, con todos sus subservicios.
pm2 startup systemd
Configurar el inicio en el arranque
El comando anterior nos dará como resultado el siguiente comando:
Cambiaremos tu_usuario
por nuestro usuario y ejecutaremos el siguiente comando.
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u tu_usuario --hp /home/tu_usuario
Guardar la lista de procesos de PM2
Como paso adicional, podemos guardar la lista de procesos de PM2 y los entornos correspondientes.
pm2 save
Iniciar el servicio de PM2
Hemos creado una unidad de systemd que ejecuta pm2 para nuestro usuario en el inicio, que a su vez, ejecuta server.js.
Para arrancar el servicio, vamos a poner el siguiente comando cambiando tu_usuario
por nuestro usuario.
Si nos da error, podemos reiniciar ubuntu con reboot
.
service pm2-tu_usuario start
Comandos PM2
Comando | Acción |
---|---|
pm2 stop nombre_app | Detener una aplicación. |
pm2 restart nombre_app | Reiniciar una aplicación. |
pm2 list | Listar las aplicaciones administradas por PM2. |
pm2 info nombre_app | Información sobre una aplicación específica. |
pm2 monit | Estado y uso de CPU de PM2. |