Ricerca nel sito web

Come installare PM2 per eseguire le app Node.js sul server di produzione


PM2 è un gestore di processi a livello di produzione open source gratuito, avanzato, efficiente e multipiattaforma per Node.js con un bilanciatore del carico integrato. Funziona su Linux, MacOS e Windows. Supporta il monitoraggio delle app, la gestione efficiente di microservizi/processi, l'esecuzione di app in modalità cluster, l'avvio e l'arresto regolari delle app.

Mantiene le tue app "attive per sempre" con riavvii automatici e può essere abilitato per l'avvio all'avvio del sistema, consentendo così l'alta disponibilità (HA) configurazioni o architetture.

In particolare, PM2 ti consente di eseguire le tue app in modalità cluster senza apportare alcuna modifica al codice (questo dipende anche dal numero di core della CPU sul tuo server). Ti consente inoltre di gestire facilmente i registri delle app e molto altro ancora.

Inoltre, ha anche un incredibile supporto per i principali framework Node.js come Express, Adonis Js, Sails , Hapi e altro ancora, senza la necessità di apportare modifiche al codice. PM2 viene utilizzato da aziende come IBM, Microsoft, PayPal e altre.

In questo articolo spiegheremo come installare e utilizzare PM2 per eseguire app Nodejs nel server di produzione Linux. Creeremo un'app per dimostrare alcune delle funzionalità fondamentali di PM2 affinché tu possa iniziare a usarlo.

Passaggio 1: installa Nodejs e NPM in Linux

1. Per installare la versione più recente di Node.js e NPM, devi prima abilitare il repository NodeSource ufficiale nella tua distribuzione Linux e quindi installare Pacchetti Node.js e NPM come mostrato.

Su Debian/Ubuntu

---------- Install Node.js v11.x ---------- 
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
sudo apt-get install -y nodejs

---------- Install Node.js v10.x ----------
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

Su CentOS/RHEL e Fedora

---------- Install Node.js v11.x ---------- 
curl -sL https://rpm.nodesource.com/setup_11.x | bash -

---------- Install Node.js v10.x ----------
curl -sL https://rpm.nodesource.com/setup_10.x | bash -

Passaggio 2: crea un'applicazione Nodejs

2. Ora creiamo un'applicazione di test (supponiamo che abbia un lato client e un lato amministratore che condividono lo stesso database), i microservizi verranno eseguiti sulle porte 3000 e 3001 rispettivamente.

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

Successivamente, copia e incolla le seguenti parti di codice nei file server.js (sostituisci 192.168.43.31 con l'IP del tuo server).

##mainapp code
const http = require('http');

const hostname = '192.168.43.31';
const port = 3000;

const server = http.createServer((req, res) => {
	res.statusCode = 200;
  	res.setHeader('Content-Type', 'text/plain');
  	res.end('This is the Main App!\n');
});

server.listen(port, hostname, () => {
  	console.log(`Server running at http://${hostname}:${port}/`);
});
##adminside code
const http = require('http');

const hostname = '192.168.43.31';
const port = 3001;

const server = http.createServer((req, res) => {
	res.statusCode = 200;
  	res.setHeader('Content-Type', 'text/plain');
  	res.end('This is the Admin Side!\n');
});

server.listen(port, hostname, () => {
  	console.log(`Server running at http://${hostname}:${port}/`);
});

Salvare il file ed uscire.

Passaggio 3: installare PM2 Product Process Manager in Linux

3. L'ultima versione stabile di PM2 è disponibile per l'installazione tramite NPM come mostrato.

sudo npm i -g pm2 

4. Una volta installato PM2, puoi avviare le applicazioni del tuo nodo utilizzando i seguenti comandi.

sudo node /var/www/html/app/server.js
sudo node /var/www/html/adminside/server.js

Tieni presente che, in un ambiente di produzione, dovresti avviarli utilizzando PM2, come mostrato (potresti non aver bisogno del comando sudo se la tua app è archiviata in una posizione in cui un utente normale ha autorizzazioni di lettura e scrittura).

sudo pm2 start /var/www/html/app/server.js
sudo pm2 start /var/www/html/adminside/server.js

Passaggio 4: come utilizzare e gestire PM2 in Linux

5. Per avviare un'applicazione in modalità cluster utilizzare il flag -i per specificare, ad esempio, il numero di istanze.

sudo pm2 start /var/www/html/app/server.js -i 4 
sudo pm2 scale 0 8			#scale cluster app to 8 processes

6. Per elencare tutte le applicazioni del nodo (processi/microservizi), esegui il comando seguente.

sudo pm2 list

7. Per monitorare log e metriche personalizzate, elaborare le informazioni di tutti i processi eseguendo il comando seguente.

sudo pm2 monit

8. Per visualizzare i dettagli di un singolo processo del nodo come mostrato, utilizzando l'ID o il nome del processo.

sudo pm2 show 0

Passaggio 5: come gestire le app dei nodi utilizzando PM2 in Linux

9. Di seguito è riportato un elenco di alcuni comandi di gestione dei processi comuni (singoli o tutti) di cui dovresti prendere nota.

sudo pm2 stop all                  		#stop all apps
sudo pm2 stop 0                    		#stop process with ID 0
sudo pm2 restart all               		#restart all apps
sudo pm2 reset 0		         	#reset all counters
sudo pm2 delete all                		#kill and remove all apps
sudo pm2 delete 1                 		#kill and delete app with ID 1

10. Per gestire i registri delle applicazioni, utilizzare i seguenti comandi.

sudo pm2 logs                      	#view logs for all processes 
sudo pm2 logs 1	         	#view logs for app 1
sudo pm2 logs --json               	#view logs for all processes in JSON format
sudo pm2 flush			#flush all logs

11. Per gestire il processo PM2, utilizzare i seguenti comandi.

sudo pm2 startup            #enable PM2 to start at system boot
sudo pm2 startup systemd    #or explicitly specify systemd as startup system 
sudo pm2 save               #save current process list on reboot
sudo pm2 unstartup          #disable PM2 from starting at system boot
sudo pm2 update	      #update PM2 package

Passaggio 6: accedere alle app del nodo dal browser Web

12. Per accedere a tutte le applicazioni del tuo nodo da un browser Web remoto, devi prima aprire le seguenti porte sul firewall del tuo sistema, per consentire le connessioni client alle app come mostrato.

-------- Debian and Ubuntu -------- 
sudo ufw allow 3000/tcp
sudo ufw allow 3001/tcp
sudo ufw reload

-------- RHEL and CentOS --------
firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --permanent --add-port=3001/tcp
firewall-cmd --reload 

13. Quindi accedi alle tue app da un browser web con questi URL:

http://198.168.43.31:3000
http://198.168.43.31:3001 

Ultimo ma non meno importante, PM2 è un semplice sistema di moduli integrato per estendere le sue funzionalità principali, alcuni dei moduli includono pm2-logrotate, pm2-webshell, pm2-server-monit e altro ancora – puoi anche creare e utilizzare i tuoi moduli.

Per ulteriori informazioni, visitare il repository GitHub PM2: https://github.com/Unitech/PM2/.

È tutto! PM2 è un gestore di processi a livello di produzione avanzato ed efficiente per Node.js con un bilanciatore del carico integrato. In questo articolo, abbiamo mostrato come installare e utilizzare PM2 per gestire le app Nodejs in Linux. Se hai domande, inviale da utilizzare tramite il modulo di commento qui sotto.