Kif Tinstalla PM2 biex Tmexxi Node.js Apps fuq Production Server


PM2 huwa maniġer ta 'proċess ta' livell ta 'produzzjoni ta' sors miftuħ b'xejn, avvanzat, effiċjenti u trans-pjattaforma għal Node.js b'bilanċjar tat-tagħbija mibni. Jaħdem fuq Linux, MacOS kif ukoll Windows. Jappoġġja l-monitoraġġ tal-app, il-ġestjoni effiċjenti tal-mikro-servizzi/proċessi, it-tħaddim tal-apps fil-modalità cluster, bidu u għeluq graceful tal-apps.

Iżomm l-apps tiegħek \ħaj għal dejjem b'ristartjar awtomatiku u jista' jiġi attivat biex jibda mal-boot tas-sistema, u b'hekk jippermetti konfigurazzjonijiet jew arkitetturi ta' Disponibbiltà Għolja (HA).

Notevolment, PM2 jippermettilek tħaddem l-apps tiegħek fil-modalità cluster mingħajr ma tagħmel xi tibdil fil-kodiċi tiegħek (dan jiddependi wkoll min-numru ta 'cores CPU fuq is-server tiegħek). Jippermettilek ukoll li timmaniġġja faċilment zkuk tal-app, u ħafna aktar.

Barra minn hekk, għandu wkoll appoġġ inkredibbli għal oqfsa Node.js ewlenin bħal Express, Adonis Js, Sails, Hapi u aktar, mingħajr il-ħtieġa ta 'xi tibdil fil-kodiċi. PM2 qed jintuża minn kumpaniji bħal IBM, Microsoft, PayPal, u aktar.

F'dan l-artikolu, se nispjegaw kif tinstalla u tuża PM2 biex tħaddem apps Nodejs fis-server tal-produzzjoni tal-Linux. Aħna se noħolqu app biex nuru xi wħud mill-karatteristiċi fundamentali tal-PM2 biex tibda biha.

Pass 1: Installa Nodejs u NPM fil-Linux

1. Biex tinstalla l-aktar verżjoni riċenti ta 'Node.js u NPM, l-ewwel trid tippermetti r-repożitorju uffiċjali ta' NodeSource taħt id-distribuzzjoni Linux tiegħek u mbagħad tinstalla l-pakketti Node.js u NPM kif muri.

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

Pass 2: Oħloq Applikazzjoni Nodejs

2. Issa, ejja noħolqu applikazzjoni tal-ittestjar (se nassumu li għandha naħa tal-klijent u tal-amministratur li jaqsmu l-istess database), il-mikroservizzi se jaħdmu fuq il-portijiet 3000, u 3001 rispettivament.

$ 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

Sussegwentement, ikkupja u waħħal il-biċċiet tal-kodiċi li ġejjin fil-fajls server.js (issostitwixxi 192.168.43.31 bl-IP tas-server tiegħek).

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

Issejvja l-fajl u oħroġ.

Pass 3: Installa PM2 Product Process Manager f'Linux

3. L-aħħar verżjoni stabbli ta 'PM2 hija disponibbli biex tinstalla permezz ta' NPM kif muri.

$ sudo npm i -g pm2 

4. Ladarba PM2 installat, tista 'tibda l-applikazzjonijiet tan-nodi tiegħek billi tuża l-kmandi li ġejjin.

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

Innota li, f'ambjent ta 'produzzjoni, għandek tibda tuża PM2, kif muri (ma jista' ma jkollokx bżonn kmand sudo jekk l-app tiegħek tkun maħżuna f'post fejn utent normali jkun jaqra u jikteb permessi).

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

Pass 4: Kif tuża u timmaniġġja l-PM2 fil-Linux

5. Biex tibda applikazzjoni fil-modalità cluster billi tuża l-bandiera -i biex tispeċifika n-numru ta' każijiet, pereżempju.

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

6. Biex telenka l-applikazzjoni tan-nodi kollha tiegħek (proċess/mikroservizzi), mexxi l-kmand li ġej.

$ sudo pm2 list

7. Biex tissorvelja zkuk, metriċi tad-dwana, ipproċessa informazzjoni mill-proċessi kollha billi tħaddem il-kmand li ġej.

$ sudo pm2 monit

8. Biex tara d-dettalji ta 'proċess ta' Node wieħed kif muri, billi tuża l-ID tal-proċess jew l-isem.

$ sudo pm2 show 0

Pass 5: Kif Immaniġġja l-Apps Node Bl-użu tal-PM2 fil-Linux

9. Din li ġejja hija lista ta' xi proċessi komuni (wieħed jew kollha) kmandi ta' ġestjoni li għandek tieħu nota tagħhom.

$ 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. Biex timmaniġġja r-reġistri tal-applikazzjoni, uża l-kmandi li ġejjin.

$ 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. Biex timmaniġġja l-proċess PM2, uża l-kmandi li ġejjin.

$ 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

Pass 6: Aċċess Node Apps Mill-Web Browser

12. Biex taċċessa l-applikazzjoni kollha tan-nodi tiegħek minn web browser remot, l-ewwel trid tiftaħ il-portijiet li ġejjin fuq il-firewall tas-sistema tiegħek, biex tippermetti konnessjonijiet tal-klijenti mal-apps kif muri.

-------- 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. Imbagħad aċċess għall-apps tiegħek minn web browser b'dawn l-URLs:

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

Fl-aħħar iżda mhux l-inqas, PM2 hija sistema ta’ moduli sempliċi u integrata biex testendi l-kapaċitajiet ewlenin tagħha, uħud mill-moduli jinkludu pm2-logrotate, pm2-webshell, pm2-server-monit, u aktar - tista’ wkoll toħloq u tuża tiegħek moduli proprji.

Għal aktar informazzjoni, mur fir-repożitorju tal-PM2 GitHub: https://github.com/Unitech/PM2/.

Dak kollox! PM2 huwa maniġer tal-proċess ta 'livell ta' produzzjoni avvanzat u effiċjenti għal Node.js b'bilanċjar tat-tagħbija integrat. F'dan l-artikolu, urejna kif tinstalla u tuża PM2 biex timmaniġġja l-apps Nodejs fil-Linux. Jekk għandek xi mistoqsijiet, ibgħathom biex tużahom permezz tal-formola tal-kummenti hawn taħt.