Kā instalēt PM2, lai palaistu Node.js lietotnes ražošanas serverī


PM2 ir bezmaksas atvērtā koda, uzlabots, efektīvs un starpplatformu ražošanas līmeņa procesu pārvaldnieks Node.js ar iebūvētu slodzes līdzsvarotāju. Tas darbojas Linux, MacOS, kā arī Windows. Tas atbalsta lietotņu uzraudzību, efektīvu mikropakalpojumu/procesu pārvaldību, lietotņu palaišanu kopu režīmā, graciozu lietotņu sākšanu un izslēgšanu.

Tas saglabā jūsu lietotnes mūžīgi dzīvas ar automātisku restartēšanu, un tās var iespējot sākt ar sistēmas sāknēšanu, tādējādi ļaujot veikt augstas pieejamības (HA) konfigurācijas vai arhitektūras.

Īpaši PM2 ļauj palaist savas lietotnes klastera režīmā, neveicot nekādas izmaiņas kodā (tas ir atkarīgs arī no jūsu serverī esošo CPU kodolu skaita). Tas arī ļauj viegli pārvaldīt lietotņu žurnālus un daudz ko citu.

Turklāt tam ir arī neticams atbalsts galvenajiem Node.js ietvariem, piemēram, Express, Adonis Js, Sails, Hapi un citiem, bez nepieciešamības mainīt kodu. PM2 izmanto tādi uzņēmumi kā IBM, Microsoft, PayPal un citi.

Šajā rakstā mēs paskaidrosim, kā instalēt un izmantot PM2, lai palaistu Nodejs lietotnes Linux ražošanas serverī. Mēs izveidosim lietotni, lai parādītu dažas PM2 pamatīpašības, lai jūs varētu sākt darbu.

1. darbība: instalējiet Nodejs un NPM Linux

1. Lai instalētu jaunāko Node.js un NPM versiju, vispirms savā Linux izplatīšanā jāiespējo oficiālā NodeSource repozitorijs un pēc tam jāinstalē Node.js un NPM pakotnes, kā parādīts.

---------- 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. darbība: izveidojiet Nodejs lietojumprogrammu

2. Tagad izveidosim testēšanas lietojumprogrammu (pieņemsim, ka tai ir klienta un administratora puse, kurai ir viena un tā pati datu bāze), mikropakalpojumi darbosies attiecīgi 3000 un 3001 ostās.

$ 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

Pēc tam nokopējiet un ielīmējiet šādus koda fragmentus failos server.js (aizstājiet 192.168.43.31 ar sava servera 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}/`);
});

Saglabājiet failu un izejiet.

3. darbība: instalējiet PM2 produktu procesu pārvaldnieku Linux

3. Jaunākā stabilā PM2 versija ir pieejama instalēšanai, izmantojot NPM, kā parādīts.

$ sudo npm i -g pm2 

4. Pēc PM2 instalēšanas jūs varat palaist mezglu lietojumprogrammas, izmantojot šādas komandas.

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

Ņemiet vērā, ka ražošanas vidē tie jāsāk, izmantojot PM2, kā parādīts (iespējams, jums nav nepieciešama sudo komanda, ja jūsu lietotne tiek glabāta vietā, kur parastam lietotājam ir lasīšanas un rakstīšanas atļaujas).

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

4. solis: Kā lietot un pārvaldīt PM2 operētājsistēmā Linux

5. Lai sāktu lietojumprogrammu kopu režīmā, izmantojot karodziņu -i , lai norādītu, piemēram, gadījumu skaitu.

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

6. Lai uzskaitītu visu mezglu lietojumprogrammu (process/mikropakalpojumi), palaidiet šādu komandu.

$ sudo pm2 list

7. Lai uzraudzītu žurnālus, pielāgotu metriku, apstrādātu visu procesu informāciju, izpildot šādu komandu.

$ sudo pm2 monit

8. Lai skatītu detalizētu informāciju par vienu mezglu, kā parādīts attēlā, izmantojot procesa ID vai nosaukumu.

$ sudo pm2 show 0

5. solis: Kā pārvaldīt mezglu lietotnes, izmantojot Linux PM2

9. Tālāk ir saraksts ar dažām kopīgām procesa (vienas vai visu) pārvaldības komandām, kuras jums jāņem vērā.

$ 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. Lai pārvaldītu lietojumprogrammu žurnālus, izmantojiet šādas komandas.

$ 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. Lai pārvaldītu PM2 procesu, izmantojiet šādas komandas.

$ 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. darbība: piekļūstiet mezglu lietotnēm no tīmekļa pārlūkprogrammas

12. Lai piekļūtu visai mezgla lietojumprogrammai no attālās tīmekļa pārlūkprogrammas, vispirms ir jāatver šādas sistēmas ugunsmūra porti, lai ļautu klienta savienojumiem ar lietotnēm, kā parādīts attēlā.

-------- 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. Pēc tam piekļūstiet savām lietotnēm no tīmekļa pārlūkprogrammas, izmantojot šādus URL:

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

Pēdējais, bet ne mazāk svarīgais ir tas, ka PM2 ir vienkārša, iebūvēta moduļu sistēma, lai paplašinātu savas pamatspējas. Daži no moduļiem ietver pm2-logrotate, pm2-webshell, pm2-server-monit un daudz ko citu - jūs varat arī izveidot un izmantot savu pašu moduļi.

Lai iegūtu papildinformāciju, dodieties uz PM2 GitHub repozitoriju: https://github.com/Unitech/PM2/.

Tas ir viss! PM2 ir uzlabots un efektīvs ražošanas līmeņa procesu pārvaldnieks Node.js ar iebūvētu slodzes līdzsvarotāju. Šajā rakstā mēs parādījām, kā instalēt un izmantot PM2, lai pārvaldītu Nodejs lietotnes Linux. Ja jums ir kādi jautājumi, nosūtiet tos lietošanai, izmantojot zemāk esošo komentāru veidlapu.