Hvordan installere PM2 for å kjøre Node.js-apper på produksjonsserver


PM2 er en gratis åpen kildekode, avansert, effektiv prosessleder på tvers av plattformer på produksjonsnivå for Node.js med en innebygd lastbalanser. Det fungerer på Linux, MacOS så vel som Windows. Den støtter appovervåking, effektiv administrasjon av mikrotjenester/prosesser, kjøring av apper i klyngemodus, grasiøs start og avslutning av apper.

Den holder appene dine «live for alltid» med automatisk omstart og kan aktiveres for å starte ved systemoppstart, og dermed tillate Høy tilgjengelighet (HA) konfigurasjoner eller arkitekturer.

Spesielt lar PM2 deg kjøre appene dine i klyngemodus uten å gjøre noen endringer i koden (dette avhenger også av antall CPU-kjerner på serveren). Den lar deg også enkelt administrere applogger, og mye mer.

I tillegg har den også utrolig støtte for store Node.js-rammeverk som Express, Adonis Js, Sails , Hapi og mer, uten behov for kodeendringer. PM2 brukes av selskaper som IBM, Microsoft, PayPal og flere.

I denne artikkelen vil vi forklare hvordan du installerer og bruker PM2 for å kjøre Nodejs-apper i Linux-produksjonsserveren. Vi vil lage en app for å demonstrere noen av PM2s grunnleggende funksjoner slik at du kan komme i gang med den.

Trinn 1: Installer Nodejs og NPM i Linux

1. For å installere den nyeste versjonen av Node.js og NPM, må du først aktivere det offisielle NodeSource-depotet under Linux-distribusjonen og deretter installere Node.js og NPM-pakker som vist.

På 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

På CentOS/RHEL og 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 -

Trinn 2: Opprett en Nodejs-applikasjon

2. La oss nå lage en testapplikasjon (vi antar at den har en klient- og adminside som deler samme database), mikrotjenestene vil kjøre på portene 3000, og 3001 henholdsvis.

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

Deretter kopierer og limer du inn følgende kodebiter i server.js-filene (erstatt 192.168.43.31 med server-IP).

##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}/`);
});

Lagre filen og avslutt.

Trinn 3: Installer PM2 Product Process Manager i Linux

3. Den siste stabile versjonen av PM2 er tilgjengelig for installasjon via NPM som vist.

sudo npm i -g pm2 

4. Når PM2 er installert, kan du starte nodeapplikasjonene dine ved å bruke følgende kommandoer.

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

Merk at i et produksjonsmiljø bør du starte dem ved å bruke PM2, som vist (det kan hende du ikke trenger sudo-kommando hvis appen din er lagret på et sted der en vanlig bruker har lese- og skrivetillatelser).

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

Trinn 4: Hvordan bruke og administrere PM2 i Linux

5. For å starte en applikasjon i klyngemodus ved å bruke -i-flagget for å spesifisere antall forekomster, for eksempel.

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

6. For å liste opp alle nodeapplikasjonene dine (prosess/mikrotjenester), kjør følgende kommando.

sudo pm2 list

7. For å overvåke logger, tilpassede beregninger, behandle informasjon fra alle prosesser ved å kjøre følgende kommando.

sudo pm2 monit

8. For å se detaljer om en enkelt nodeprosess som vist, ved å bruke prosess-ID eller navn.

sudo pm2 show 0

Trinn 5: Hvordan administrere nodeapper ved å bruke PM2 i Linux

9. Det følgende er en liste over noen vanlige prosess (enkelt eller alle) administrasjonskommandoer du bør legge merke til.

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. For å administrere applikasjonslogger, bruk følgende kommandoer.

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. For å administrere PM2-prosessen, bruk følgende kommandoer.

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

Trinn 6: Få tilgang til nodeapper fra nettleseren

12. For å få tilgang til alle nodeapplikasjonene dine fra en ekstern nettleser, må du først åpne følgende porter på systembrannmuren for å tillate klienttilkoblinger til appene som vist.

-------- 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. Deretter får du tilgang til appene dine fra en nettleser med disse nettadressene:

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

Sist men ikke minst, PM2 er et enkelt, innebygd modulsystem for å utvide kjernefunksjonene, noen av modulene inkluderer pm2-logrotate, pm2-webshell, pm2-server-monit og mer – du kan også lage og bruke dine egne moduler.

For mer informasjon, gå til PM2 GitHub-depotet: https://github.com/Unitech/PM2/.

Det er alt! PM2 er en avansert og effektiv prosessleder på produksjonsnivå for Node.js med en innebygd lastbalanser. I denne artikkelen viste vi hvordan du installerer og bruker PM2 til å administrere Nodejs-apper i Linux. Hvis du har spørsmål, send dem til bruk via kommentarskjemaet nedenfor.