Table of Contents
Cómo instalar PM2 para ejecutar aplicaciones Node.js en el servidor de producción
PM2. es un administrador de procesos de nivel de producción multiplataforma, avanzado, eficiente y de código abierto gratuito para Node.js. con un equilibrador de carga integrado. Funciona en Linux, MacOS y Windows. Es compatible con la supervisión de aplicaciones, la gestión eficiente de microservicios/procesos, la ejecución de aplicaciones en modo de clúster, el inicio y el cierre elegantes de aplicaciones.
Mantiene sus aplicaciones “ vivas para siempre. con se reinicia automáticamente y se puede habilitar para que se inicie en el inicio del sistema, lo que permite configuraciones o arquitecturas de Alta disponibilidad. ( HA. .
En particular, PM2. le permite ejecutar sus aplicaciones en modo de clúster. sin realizar ningún cambio en su código (esto también depende de la cantidad de núcleos de CPU en su servidor). También le permite administrar fácilmente los registros de aplicaciones y mucho más.
Además, también tiene un soporte increíble para los principales marcos de Node.js. como Express. Adonis Js. Sails. Hapi. y más, sin necesidad de ningún cambio de código. PM2. está siendo utilizado por empresas como IBM. Microsoft. PayPal. y más.
En este artículo, explicaremos cómo instalar y usar PM2. para ejecutar aplicaciones Nodejs. en el servidor de producción de Linux. Crearemos una aplicación para demostrar algunas de las características fundamentales de PM2 para que pueda comenzar con ella.
Paso 1: Instale Nodejs y NPM en Linux
freestar.config.enabled_slots.push (LocationName : “tecmint_incontent”, slotId: “tecmint_incontent”);
1.. Para instalar la versión más reciente de Node.js. y NPM. primero debe habilitar el repositorio oficial de NodeSource en su distribución de Linux y luego instalar los paquetes Node.js. y NPM. como se muestra.
En Debian/Ubuntu ———-Instalar Node.js v11.x———- $ curl-sL https://deb.nodesource.com/setup_11.x | sudo-E bash-$ sudo apt-get install-y nodejs ———-Instalar Node.js v10.x———- $ curl-sL https://deb.nodesource.com/setup_10.x | sudo-E bash-$ sudo apt-get install-y nodejs En CentOS/RHEL y Fedora ———-Instalar Node.js v11.x———- $ curl-sL https://rpm.nodesource.com/setup_11.x | bash-———-Instala Node.js v10.x———- $ curl-sL https://rpm.nodesource.com/setup_10.x | bash-
Paso 2: Cree una aplicación Nodejs
2.. Ahora, creemos una aplicación de prueba (asumiremos que tiene un cliente y un administrador que comparten lo mismo database), los microservicios se ejecutarán en los puertos 3000. y 3001. respectivamente.
$ sudo mkdir-p/var/www/html/app $ sudo mkdir-p/var/www/html/adminside $ sudo vim/var/www/html/app/server.js $ sudo vim/var/www/html/adminside/server.js
A continuación, copie y pegue las siguientes piezas de código en los archivos server.js (reemplace 192.168.43.31. con la IP de su servidor).
## código de la aplicación principal. const http = require (‘http’) ; const nombre de host = ‘192.168.43.31’; puerto constante = 3000; const server = http.createServer ((req, res) => res.statusCode = 200; res.setHeader (‘Content-Type’, ‘text/plain’); res.end (‘¡Esta es la aplicación principal! \ n ‘);); server.listen (puerto, nombre de host, () => console.log (`Servidor ejecutándose en http://$ nombre de host: $ puerto/`);); ## código del lado del administrador. const http = require (‘http’); const nombre de host = ‘192.168.43.31’; puerto constante = 3001; const server = http.createServer ((req, res) => res.statusCode = 200; res.setHeader (‘Content-Type’, ‘text/plain’); res.end (‘¡Este es el lado del administrador! \ n ‘);); server.listen (puerto, nombre de host, () => console.log (`Servidor ejecutándose en http://$ nombre de host: $ puerto/`););
Guarde el archivo y salga.
Paso 3: Instale PM2 Product Process Manager en Linux
3.. La última versión estable de PM2. está disponible para instalar a través de NPM. como se muestra.
$ sudo npm i-g pm2
4.. Una vez PM2. instalado, puede iniciar sus aplicaciones de nodo usando los siguientes comandos.
$ sudo node/var/www/html/app/server.js $ sudo node/var/www/html/adminside/server.js
Tenga en cuenta que, en un entorno de producción, debe iniciarlos usando PM2. como se muestra (es posible que no necesite el comando sudo si su aplicación está almacenada en una ubicación donde un usuario normal tiene permisos de lectura y escritura ).
$ sudo pm2 start/var/www/html/app/server.js $ sudo pm2 start/var/www/html/adminside/server.js
Iniciar la aplicación Nodejs usando PM2
Paso 4: Cómo usar y administrar PM2 en Linux
5 .. Para iniciar una aplicación en modo de clúster usando el indicador-i para especificar el número de instancias, por ejemplo.
$ sudo pm2 start/var/www/html/app/server.js-i 4 $ sudo pm2 scale 0 8 #scale la aplicación de clúster a 8 procesos
6.. Para enumerar todas sus aplicaciones de nodo (proceso/microservicios), ejecute el siguiente comando.
$ sudo pm2 list
Listar todas las aplicaciones de nodo administrado de PM2
7.. Para monitorear registros, métricas personalizadas, procesar información de todos los procesos ejecutando el siguiente comando.
$ sudo pm2 monit
Supervisar todos los procesos de nodo
8.. Para ver los detalles de un proceso de nodo único como se muestra, usando el ID del proceso o el nombre.
$ sudo pm2 show 0
Ver detalles de una sola aplicación
Paso 5: Cómo administrar aplicaciones de nodo con PM2 en Linux
9 . La siguiente es una lista de algunos comandos de administración de procesos comunes (uno o todos) que debe tener en cuenta.
$ sudo pm2 detener todas # detener todas las aplicaciones $ sudo pm2 detener 0 # detener el proceso con ID 0 $ sudo pm2 reiniciar todas # reiniciar todas las aplicaciones $ sudo pm2 reset 0 #restablecer todos los contadores $ sudo pm2 eliminar todas #kill y eliminar todas las aplicaciones $ sudo pm2 eliminar 1 #kill y eliminar la aplicación con ID 1
10.. Para administrar los registros de la aplicación, use los siguientes comandos.
$ sudo pm2 logs #ver los registros de todos los procesos $ sudo pm2 logs 1 #ver los registros de la aplicación 1 $ sudo pm2 logs–json #ver los registros de todos los procesos en formato JSON $ sudo pm2 flush #flush todos los registros
11.. Para administrar el proceso de PM2, use los siguientes comandos.
$ sudo pm2 startup #enable PM2 para que se inicie en el arranque del sistema $ sudo pm2 startup systemd # o explícitamente sp ecify systemd como sistema de inicio $ sudo pm2 save #save current process list on reboot $ sudo pm2 unstartup #disable PM2 from start at system boot $ sudo pm2 update #update PM2 package
Paso 6: Acceda a las aplicaciones de nodo desde el navegador web
12.. Para acceder a todas las aplicaciones de su nodo desde un navegador web remoto, primero debe abrir los siguientes puertos en el firewall de su sistema, para permitir conexiones de cliente a las aplicaciones como se muestra.
——–Debian y Ubuntu——– $ sudo ufw permiten 3000/tcp $ sudo ufw permiten 3001/tcp $ sudo ufw reload ——–RHEL y CentOS——– # firewall-cmd–permanent–add-port = 3000/tcp # firewall-cmd–permanent–add-port = 3001/tcp # firewall-cmd–reload
13.. Luego acceda a sus aplicaciones desde un navegador web con estas URL:
http://198.168.43.31:3000 http://198.168.43.31:3001
Aplicaciones de nodo de acceso desde el navegador
Por último, pero no menos importante, PM2. es un sistema de módulos integrado simple para ampliar sus capacidades principales, algunos de los módulos incluya pm2-logrotate, pm2-webshell, pm2-server-monit y más; también puede crear y usar sus propios módulos.
Para obtener más información, vaya al repositorio de PM2 GitHub: https://github.com/Unitech/PM2/.
¡Eso es todo! PM2. es un administrador de procesos de nivel de producción avanzado y eficiente para Node.js. con un equilibrador de carga integrado. En este artículo, mostramos cómo instalar y usar PM2 para administrar aplicaciones Nodejs en Linux. Si tiene alguna consulta, envíela para utilizarla a través del formulario de comentarios a continuación.