Jinsi ya Kusakinisha PM2 ili Kuendesha Programu za Node.js kwenye Seva ya Uzalishaji


PM2 ni chanzo huria kisicholipishwa, cha hali ya juu, chenye ufanisi na meneja wa mchakato wa kiwango cha uzalishaji wa majukwaa mtambuka kwa Node.js chenye mizani iliyojengewa ndani. Inafanya kazi kwenye Linux, MacOS na Windows. Inaauni ufuatiliaji wa programu, usimamizi bora wa huduma ndogo/taratibu, kuendesha programu katika hali ya makundi, kuanza kwa njia nzuri na kuzimwa kwa programu.

Huweka programu zako \hai milele kwa kuwashwa upya kiotomatiki na inaweza kuwashwa kuanza kwenye mfumo wa kuwasha, hivyo basi kuruhusu usanidi au usanifu wa Upatikanaji wa Juu (HA).

Hasa, PM2 hukuruhusu kuendesha programu zako katika hali ya nguzo bila kufanya mabadiliko yoyote katika msimbo wako (hii pia inategemea idadi ya cores za CPU kwenye seva yako). Pia hukuruhusu kudhibiti kumbukumbu za programu kwa urahisi, na mengi zaidi.

Kwa kuongeza, pia ina usaidizi wa ajabu kwa mifumo mikuu ya Node.js kama vile Express, Adonis Js, Sails, Hapi na zaidi, bila kuhitaji mabadiliko yoyote ya msimbo. PM2 inatumiwa na makampuni kama vile IBM, Microsoft, PayPal, na zaidi.

Katika makala haya, tutaelezea jinsi ya kusakinisha na kutumia PM2 ili kuendesha programu za Nodejs kwenye seva ya uzalishaji ya Linux. Tutaunda programu kwa ajili ya kuonyesha baadhi ya vipengele vya msingi vya PM2 ili uanze nayo.

Hatua ya 1: Sakinisha Nodejs na NPM kwenye Linux

1. Ili kusakinisha toleo la hivi majuzi zaidi la Node.js na NPM, kwanza unahitaji kuwezesha hazina rasmi ya NodeSource chini ya usambazaji wako wa Linux na kisha usakinishe Node.js na vifurushi vya NPM kama inavyoonyeshwa.

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

Hatua ya 2: Unda Programu ya Nodejs

2. Sasa, hebu tuunde programu ya majaribio (tutadhani ina upande wa mteja na msimamizi ambao hushiriki hifadhidata sawa), huduma ndogo zitaendesha kwenye bandari 3000, na 3001 kwa mtiririko huo.

$ 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

Kisha, nakili na ubandike vipande vifuatavyo vya msimbo katika faili za server.js (badilisha 192.168.43.31 na IP ya seva yako).

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

Hifadhi faili na uondoke.

Hatua ya 3: Sakinisha Kidhibiti cha Mchakato wa Bidhaa cha PM2 kwenye Linux

3. Toleo la hivi punde thabiti la PM2 linapatikana ili kusakinishwa kupitia NPM kama inavyoonyeshwa.

$ sudo npm i -g pm2 

4. Mara PM2 ikishasakinishwa, unaweza kuanza programu-tumizi za nodi kwa kutumia amri zifuatazo.

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

Kumbuka kuwa, katika mazingira ya uzalishaji, unapaswa kuzianzisha kwa kutumia PM2, kama inavyoonyeshwa (huenda usihitaji amri ya sudo ikiwa programu yako imehifadhiwa mahali ambapo mtumiaji wa kawaida ana ruhusa za kusoma na kuandika).

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

Hatua ya 4: Jinsi ya Kutumia na Kusimamia PM2 katika Linux

5. Kuanzisha programu katika hali ya nguzo kwa kutumia alama ya -i ili kubainisha idadi ya matukio, kwa mfano.

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

6. Kuorodhesha programu yako yote ya nodi (mchakato/huduma ndogo), endesha amri ifuatayo.

$ sudo pm2 list

7. Kufuatilia kumbukumbu, vipimo maalum, kuchakata taarifa kutoka kwa michakato yote kwa kuendesha amri ifuatayo.

$ sudo pm2 monit

8. Kuangalia maelezo ya mchakato wa Nodi moja kama inavyoonyeshwa, kwa kutumia kitambulisho cha mchakato au jina.

$ sudo pm2 show 0

Hatua ya 5: Jinsi ya Kudhibiti Programu za Nodi Kwa Kutumia PM2 kwenye Linux

9. Ifuatayo ni orodha ya baadhi ya amri za usimamizi wa mchakato wa kawaida (moja au zote) unapaswa kuzingatia.

$ 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. Kusimamia kumbukumbu za programu, tumia amri zifuatazo.

$ 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. Kusimamia mchakato wa PM2, tumia amri zifuatazo.

$ 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

Hatua ya 6: Fikia Programu za Njia kutoka kwa Kivinjari cha Wavuti

12. Ili kufikia programu yako yote ya nodi kutoka kwa kivinjari cha mbali cha wavuti, kwanza unahitaji kufungua milango ifuatayo kwenye ngome ya mfumo wako, ili kuruhusu miunganisho ya mteja kwa programu kama inavyoonyeshwa.

-------- 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. Kisha fikia programu zako kutoka kwa kivinjari cha wavuti kwa URL hizi:

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

Mwisho kabisa, PM2 ni mfumo rahisi, uliojengwa ndani wa moduli ili kupanua uwezo wake wa msingi, baadhi ya moduli ni pamoja na pm2-logrotate, pm2-webshell, pm2-server-monit, na zaidi - unaweza pia kuunda na kutumia yako. modules mwenyewe.

Kwa maelezo zaidi, nenda kwenye hazina ya PM2 GitHub: https://github.com/Unitech/PM2/.

Ni hayo tu! PM2 ni kidhibiti cha hali ya juu, na chenye ufanisi wa mchakato wa uzalishaji wa Node.js kilicho na kisawazisha kilichojumuishwa ndani. Katika makala haya, tulionyesha jinsi ya kusakinisha na kutumia PM2 kudhibiti programu za Nodejs katika Linux. Ikiwa una maswali yoyote, yatume ili kutumia kupitia fomu ya maoni hapa chini.