Hvernig á að setja upp PM2 til að keyra Node.js öpp á framleiðsluþjóni


PM2 er ókeypis opinn uppspretta, háþróaður, skilvirkur og vinnslustjóri á vettvangi framleiðslu fyrir Node.js með innbyggðum álagsjafnara. Það virkar á Linux, MacOS og Windows. Það styður eftirlit með forritum, skilvirka stjórnun á örþjónustu/ferlum, keyrslu forrita í klasaham, þokkafulla ræsingu og lokun forrita.

Það heldur öppunum þínum \lifandi að eilífu með sjálfvirkri endurræsingu og hægt er að virkja það til að hefjast við ræsingu kerfisins, sem gerir þannig kleift að stilla háa aðgengi (HA) eða arkitektúr.

Sérstaklega gerir PM2 þér kleift að keyra forritin þín í klasaham án þess að gera breytingar á kóðanum þínum (þetta fer líka eftir fjölda CPU kjarna á netþjóninum þínum). Það gerir þér einnig kleift að stjórna forritaskrám auðveldlega og svo margt fleira.

Að auki hefur það líka ótrúlegan stuðning fyrir helstu Node.js ramma eins og Express, Adonis Js, Sails, Hapi og fleira, án þess að þurfa að breyta kóða. PM2 er notað af fyrirtækjum eins og IBM, Microsoft, PayPal og fleirum.

Í þessari grein munum við útskýra hvernig á að setja upp og nota PM2 til að keyra Nodejs öpp á Linux framleiðsluþjóni. Við munum búa til app til að sýna nokkra af grundvallareiginleikum PM2 fyrir þig til að byrja með það.

Skref 1: Settu upp Nodejs og NPM í Linux

1. Til að setja upp nýjustu útgáfuna af Node.js og NPM þarftu fyrst að virkja opinbera NodeSource geymslu undir Linux dreifingunni þinni og setja síðan upp Node.js og NPM pakka eins og sýnt er.

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

Skref 2: Búðu til Nodejs forrit

2. Nú skulum við búa til prófunarforrit (við gerum ráð fyrir að það sé með biðlara og stjórnanda hlið sem deila sama gagnagrunni), örþjónusturnar munu keyra á höfnum 3000 og 3001 í sömu röð.

$ 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

Næst skaltu afrita og líma eftirfarandi kóða í server.js skrárnar (skipta um 192.168.43.31 fyrir IP-tölu netþjónsins).

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

Vistaðu skrána og hættu.

Skref 3: Settu upp PM2 Product Process Manager í Linux

3. Hægt er að setja upp nýjustu stöðugu útgáfuna af PM2 í gegnum NPM eins og sýnt er.

$ sudo npm i -g pm2 

4. Þegar PM2 hefur verið sett upp geturðu ræst hnútaforritin þín með því að nota eftirfarandi skipanir.

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

Athugaðu að í framleiðsluumhverfi ættir þú að byrja þá með því að nota PM2, eins og sýnt er (þú gætir ekki þurft sudo skipun ef appið þitt er geymt á stað þar sem venjulegur notandi hefur les- og skrifheimildir).

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

Skref 4: Hvernig á að nota og stjórna PM2 í Linux

5. Til að ræsa forrit í klasaham með því að nota -i fánann til að tilgreina fjölda tilvika, til dæmis.

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

6. Til að skrá öll hnútaforritið þitt (ferli/örþjónustu) skaltu keyra eftirfarandi skipun.

$ sudo pm2 list

7. Til að fylgjast með annálum, sérsniðnum mæligildum, vinna úr upplýsingum úr öllum ferlum með því að keyra eftirfarandi skipun.

$ sudo pm2 monit

8. Til að skoða upplýsingar um eitt hnútferli eins og sýnt er, með því að nota ferliskennið eða nafnið.

$ sudo pm2 show 0

Skref 5: Hvernig á að stjórna hnútaforritum með því að nota PM2 í Linux

9. Eftirfarandi er listi yfir nokkrar algengar ferli (einar eða allar) stjórnunarskipanir sem þú ættir að taka eftir.

$ 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. Notaðu eftirfarandi skipanir til að stjórna forritaskrám.

$ 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. Til að stjórna PM2 ferlinu, notaðu eftirfarandi skipanir.

$ 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

Skref 6: Fáðu aðgang að hnútforritum úr vafra

12. Til að fá aðgang að öllu hnútaforritinu þínu úr ytri vafra þarftu fyrst að opna eftirfarandi tengi á eldvegg kerfisins til að leyfa tengingar viðskiptavinar við forritin eins og sýnt er.

-------- 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. Fáðu síðan aðgang að forritunum þínum úr vafra með þessum vefslóðum:

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

Síðast en ekki síst er PM2 einfalt, innbyggt einingarkerfi til að auka kjarnagetu sína, sumar einingarnar innihalda pm2-logrotate, pm2-webshell, pm2-server-monit og fleira - þú getur líka búið til og notað eigin einingar.

Fyrir frekari upplýsingar, farðu í PM2 GitHub geymsluna: https://github.com/Unitech/PM2/.

Það er allt og sumt! PM2 er háþróaður og skilvirkur vinnslustjóri Node.js á framleiðslustigi með innbyggðum álagsjafnara. Í þessari grein sýndum við hvernig á að setja upp og nota PM2 til að stjórna Nodejs öppum í Linux. Ef þú hefur einhverjar fyrirspurnir, sendu þær til að nota í gegnum athugasemdareyðublaðið hér að neðan.