Kako namestiti PM2 za zagon aplikacij Node.js na strežniku Production Server


PM2 je brezplačen odprtokodni, napreden, učinkovit in medplatformski produkcijski upravitelj procesov za Node.js z vgrajenim izravnalnikom obremenitve. Deluje v sistemih Linux, MacOS in Windows. Podpira spremljanje aplikacij, učinkovito upravljanje mikro storitev/procesov, izvajanje aplikacij v načinu gruče, ljubek zagon in zaustavitev aplikacij.

S samodejnimi ponovnimi zagoni ohranja vaše aplikacije "za vedno v življenju" in jih lahko omogočite pri zagonu sistema, kar omogoča konfiguracije ali arhitekture z visoko razpoložljivostjo (HA).

Predvsem PM2 vam omogoča, da svoje aplikacije zaženete v načinu gruče, ne da bi pri tem spreminjali kodo (to je odvisno tudi od števila jeder procesorja na vašem strežniku). Omogoča tudi preprosto upravljanje dnevnikov aplikacij in še veliko več.

Poleg tega ima tudi neverjetno podporo za večja ogrodja Node.js, kot so Express, Adonis Js, Sails, Hapi in drugi, brez kakršnih koli sprememb kode. PM2 uporabljajo podjetja, kot so IBM, Microsoft, PayPal itd.

V tem članku bomo razložili, kako namestiti in uporabiti PM2 za zagon aplikacij Nodejs v produkcijskem strežniku Linux. Ustvarili bomo aplikacijo za prikaz nekaterih temeljnih funkcij PM2, da boste lahko začeli z njo.

1. korak: Namestite Nodejs in NPM v Linux

1. Če želite namestiti najnovejšo različico Node.js in NPM, morate najprej pod distribucijo Linuxa omogočiti uradno skladišče NodeSource, nato pa namestiti pakete Node.js in NPM, kot je prikazano.

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

2. korak: Ustvarite aplikacijo Nodejs

2. Zdaj pa ustvarimo preskusno aplikacijo (domnevali bomo, da ima stran odjemalca in skrbnika, ki imata isto bazo podatkov), mikroservice bodo delovale na vratih 3000 oziroma 3001.

$ 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

Nato kopirajte in prilepite naslednje koščke kode v datoteke server.js (192.168.43.31 zamenjajte z IP strežnika).

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

Shranite datoteko in zapustite.

3. korak: Namestite PM2 Product Process Manager v Linux

3. Najnovejša stabilna različica PM2 je na voljo za namestitev prek NPM, kot je prikazano.

$ sudo npm i -g pm2 

4. Ko je PM2 nameščen, lahko svoje aplikacije vozlišč zaženete z naslednjimi ukazi.

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

Upoštevajte, da jih morate v produkcijskem okolju zagnati s PM2, kot je prikazano (ukaz sudo morda ne bo potreben, če je vaša aplikacija shranjena na mestu, kjer ima navaden uporabnik dovoljenja za branje in pisanje).

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

4. korak: Kako uporabljati in upravljati PM2 v Linuxu

5. Če želite zagnati aplikacijo v načinu gruče, na primer z zastavico -i določite število primerkov.

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

6. Za seznam vseh aplikacij vozlišča (proces/mikroservis) zaženite naslednji ukaz.

$ sudo pm2 list

7. Za spremljanje dnevnikov, meritev po meri obdelajte informacije iz vseh procesov z izvajanjem naslednjega ukaza.

$ sudo pm2 monit

8. Če si želite ogledati podrobnosti o posameznem procesu vozlišča, kot je prikazano, uporabite ID ali ime procesa.

$ sudo pm2 show 0

5. korak: Kako upravljati aplikacije vozlišč z uporabo PM2 v Linuxu

9. Spodaj je seznam nekaterih skupnih ukazov za upravljanje procesov (posameznih ali vseh), ki jih morate upoštevati.

$ 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. Za upravljanje dnevnikov aplikacij uporabite naslednje ukaze.

$ 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. Za upravljanje procesa PM2 uporabite naslednje ukaze.

$ 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

6. korak: Dostop do aplikacij vozlišč iz spletnega brskalnika

12. Za dostop do vseh aplikacij vozlišča iz oddaljenega spletnega brskalnika morate najprej odpreti naslednja vrata na požarnem zidu sistema, da omogočite odjemalčeve povezave z aplikacijami, kot je prikazano.

-------- 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. Nato dostopajte do svojih aplikacij iz spletnega brskalnika s temi URL -ji:

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

Nenazadnje je PM2 preprost, vgrajen sistem modulov za razširitev njegovih osnovnih zmogljivosti, nekateri moduli vključujejo pm2-logrotate, pm2-webshell, pm2-server-monit in drugo-lahko tudi ustvarite in uporabite lastne module.

Za več informacij obiščite skladišče PM2 GitHub: https://github.com/Unitech/PM2/.

To je vse! PM2 je napreden in učinkovit vodja procesov na ravni proizvodnje za Node.js z vgrajenim izravnalnikom obremenitve. V tem članku smo pokazali, kako namestiti in uporabljati PM2 za upravljanje aplikacij Nodejs v Linuxu. Če imate kakršna koli vprašanja, jih pošljite v uporabo prek spodnjega obrazca za komentar.