ວິທີການຕິດຕັ້ງ PM2 ເພື່ອ ດຳ ເນີນການ Node.js Apps ໃນ Production Server


PM2 ແມ່ນໂປແກຼມເປີດທີ່ບໍ່ເສຍຄ່າ, ເປັນຜູ້ຈັດການຂັ້ນຕອນການຜະລິດລະດັບການຜະລິດຂັ້ນສູງ, ມີປະສິດທິພາບແລະຂ້າມເວທີ ສຳ ລັບ Node.js ທີ່ມີລະບົບການເກັບຮັກສາ. ມັນເຮັດວຽກໃນ Linux, MacOS ເຊັ່ນດຽວກັນກັບ Windows. ມັນສະ ໜັບ ສະ ໜູນ ການຕິດຕາມກວດກາແອັບ, ການຄຸ້ມຄອງບໍລິການ/ຂະບວນການຈຸນລະພາກທີ່ມີປະສິດຕິພາບ, ແລ່ນແອັບ in ໃນ ໂໝດ cluster, ການເລີ່ມຕົ້ນຜ່ອນຜັນແລະປິດກິດ.

ມັນເຮັດໃຫ້ແອັບ your ຂອງທ່ານ“ ມີຊີວິດຢູ່ຕະຫຼອດໄປ” ດ້ວຍການເລີ່ມຄືນ ໃໝ່ ໂດຍອັດຕະໂນມັດແລະສາມາດເປີດໃຊ້ງານໄດ້ໃນລະບົບເລີ່ມຕົ້ນ, ດັ່ງນັ້ນຊ່ວຍໃຫ້ມີການຕັ້ງຄ່າຫລືສະຖາປັດຕະຍະ ກຳ ສູງ.

ໂດຍສັງເກດ, PM2 ຊ່ວຍໃຫ້ທ່ານສາມາດເຮັດວຽກແອັບ your ຂອງທ່ານໄດ້ໃນ cluster mode ໂດຍບໍ່ຕ້ອງມີການປ່ຽນແປງໃດໆໃນລະຫັດຂອງທ່ານ (ນີ້ກໍ່ຂື້ນກັບ ຈຳ ນວນ CPU ທີ່ຢູ່ໃນເຊີບເວີຂອງທ່ານ). ມັນຍັງຊ່ວຍໃຫ້ທ່ານສາມາດຈັດການບັນທຶກແອັບ app ໄດ້ງ່າຍແລະອື່ນໆອີກຫລາຍຢ່າງ.

ນອກຈາກນັ້ນ, ມັນຍັງມີການສະ ໜັບ ສະ ໜູນ ທີ່ບໍ່ ໜ້າ ເຊື່ອ ສຳ ລັບກອບ Node.js ທີ່ ສຳ ຄັນເຊັ່ນ: Express, Adonis Js, Sails, Hapi ແລະອື່ນໆ, ໂດຍບໍ່ ຈຳ ເປັນຕ້ອງມີການປ່ຽນລະຫັດໃດໆ. PM2 ແມ່ນຖືກ ນຳ ໃຊ້ໂດຍບໍລິສັດເຊັ່ນ: IBM, Microsoft, PayPal, ແລະອື່ນໆ.

ໃນບົດຂຽນນີ້, ພວກເຮົາຈະອະທິບາຍວິທີການຕິດຕັ້ງແລະ ນຳ ໃຊ້ PM2 ເພື່ອ ດຳ ເນີນການ Nodejs apps ໃນ server server ຜະລິດ. ພວກເຮົາຈະສ້າງແອັບ for ເພື່ອສະແດງບາງລັກສະນະພື້ນຖານຂອງ PM2 ເພື່ອໃຫ້ທ່ານເລີ່ມຕົ້ນດ້ວຍມັນ.

ຂັ້ນຕອນທີ 1: ຕິດຕັ້ງ Nodejs ແລະ NPM ໃນ Linux

1. ເພື່ອຕິດຕັ້ງ Node.js ແລະ NPM ລຸ້ນ ໃໝ່ ຫຼ້າສຸດ, ທຳ ອິດທ່ານຕ້ອງເປີດ ນຳ ໃຊ້ NodeSource repository ຢ່າງເປັນທາງການພາຍໃຕ້ການແຈກຈ່າຍ Linux ຂອງທ່ານແລະຫຼັງຈາກນັ້ນຕິດຕັ້ງ Node.js ແລະ NPM packages ຕາມທີ່ສະແດງ.

---------- 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: ສ້າງ Nodejs Application

2. ດຽວນີ້, ໃຫ້ສ້າງໂປແກຼມທົດສອບ (ພວກເຮົາຈະຖືວ່າມັນມີລູກຄ້າແລະຝ່າຍບໍລິຫານເຊິ່ງແບ່ງປັນຖານຂໍ້ມູນດຽວກັນ), ກ້ອງຈຸລະທັດຈະແລ່ນຢູ່ທ່າເຮືອ 3000, ແລະ 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

ຕໍ່ໄປ, ຄັດລອກແລະວາງຊິ້ນສ່ວນຂອງລະຫັດຕໍ່ໄປນີ້ໃນແຟ້ມ server.js (ທົດແທນ 192.168.43.31 ກັບ 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}/`);
});

ບັນທຶກເອກະສານແລະອອກ.

ຂັ້ນຕອນທີ 3: ຕິດຕັ້ງຜູ້ຈັດການຂະບວນການຜະລິດຕະພັນ PM2 ໃນ Linux

3. ຮຸ່ນ PM2 ທີ່ລ້າສຸດແມ່ນມີໃຫ້ຕິດຕັ້ງຜ່ານ NPM ດັ່ງທີ່ເຫັນ.

$ sudo npm i -g pm2 

4. ເມື່ອຕິດຕັ້ງ PM2 ແລ້ວ, ທ່ານສາມາດເລີ່ມໃຊ້ໂປແກຼມ node ຂອງທ່ານໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

ຈົ່ງສັງເກດວ່າ, ໃນສະພາບແວດລ້ອມການຜະລິດ, ທ່ານຄວນເລີ່ມຕົ້ນໃຊ້ພວກມັນໂດຍໃຊ້ PM2, ດັ່ງທີ່ສະແດງ (ທ່ານອາດຈະບໍ່ຕ້ອງການ ຄຳ ສັ່ງ sudo ຖ້າແອັບ app ຂອງທ່ານຖືກເກັບຢູ່ບ່ອນທີ່ຜູ້ໃຊ້ທົ່ວໄປໄດ້ອ່ານແລະຂຽນສິດອະນຸຍາດ).

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

ຂັ້ນຕອນທີ 4: ວິທີການ ນຳ ໃຊ້ແລະຈັດການ PM2 ໃນ Linux

5. ເພື່ອເລີ່ມຕົ້ນການສະ ໝັກ ໃນແບບ cluster ໂດຍໃຊ້ -i ທຸງເພື່ອລະບຸ ຈຳ ນວນຕົວຢ່າງ, ຕົວຢ່າງ.

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

6. ເພື່ອລົງລາຍຊື່ໂປແກຼມ node ຂອງທ່ານທັງ ໝົດ (ຂັ້ນຕອນ/microservices), ໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ sudo pm2 list

7. ເພື່ອຕິດຕາມກວດກາການບັນທຶກ, ການວັດແທກທີ່ ກຳ ນົດເອງ, ຂໍ້ມູນຂ່າວສານຈາກທຸກຂະບວນການໂດຍການ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ sudo pm2 monit

8. ເພື່ອເບິ່ງລາຍລະອຽດຂອງຂັ້ນຕອນ Node ດຽວທີ່ສະແດງ, ໂດຍໃຊ້ ID ຂອງຂະບວນການຫຼືຊື່.

$ sudo pm2 show 0

ຂັ້ນຕອນທີ 5: ວິທີການຈັດການ Node Apps ໃຊ້ PM2 ໃນ Linux

9. ຕໍ່ໄປນີ້ແມ່ນບັນຊີຂອງບາງ ຄຳ ສັ່ງກ່ຽວກັບການບໍລິຫານທົ່ວໄປ (ດຽວຫຼືທັງ ໝົດ) ທີ່ທ່ານຄວນ ຄຳ ນຶງເຖິງ.

$ 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. ເພື່ອຈັດການບັນທຶກການ ນຳ ໃຊ້, ໃຫ້ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ 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. ໃນການຄຸ້ມຄອງຂະບວນການ PM2, ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ 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: ເຂົ້າເຖິງ Node Apps ຈາກ Web Browser

12. ເພື່ອເຂົ້າເຖິງໂປແກຼມ node ທັງ ໝົດ ຂອງທ່ານຈາກໂປແກຼມທ່ອງເວັບທີ່ຢູ່ຫ່າງໄກສອກຫຼີກ, ທຳ ອິດທ່ານຕ້ອງເປີດພອດຕໍ່ໄປນີ້ໃນລະບົບໄຟລະບົບຂອງທ່ານ, ເພື່ອໃຫ້ລູກຄ້າເຊື່ອມຕໍ່ກັບແອັບ as ດັ່ງທີ່ສະແດງ.

-------- 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. ຫຼັງຈາກນັ້ນເຂົ້າໃຊ້ແອັບ your ຂອງທ່ານຈາກໂປແກຼມທ່ອງເວັບທີ່ມີ URL ເຫຼົ່ານີ້:

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

ສຸດທ້າຍ, PM2 ແມ່ນລະບົບແບບໂມດູນແບບງ່າຍດາຍແລະມີປະສິດຕິພາບເພື່ອຂະຫຍາຍຄວາມສາມາດຫຼັກຂອງມັນ, ບາງໂມດູນປະກອບມີ pm2-logrotate, pm2-webshell, pm2-server-monit, ແລະອື່ນໆ - ທ່ານຍັງສາມາດສ້າງແລະ ນຳ ໃຊ້ຂອງທ່ານ ໂມດູນຂອງຕົນເອງ.

ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ໃຫ້ໄປທີ່ຫໍສະ ໝຸດ PM2 GitHub: https://github.com/Unitech/PM2/.

ຫມົດເທົ່ານີ້! PM2 ແມ່ນຜູ້ຈັດການຂັ້ນຕອນການຜະລິດລະດັບການຜະລິດທີ່ມີປະສິດຕິພາບແລະມີປະສິດຕິພາບສູງ ສຳ ລັບ Node.js ພ້ອມດ້ວຍຕົວຊ່ວຍໃນການໂຫຼດ. ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ສະແດງວິທີການຕິດຕັ້ງແລະ ນຳ ໃຊ້ PM2 ເພື່ອຈັດການກັບ Nodejs ໃນ Linux. ຖ້າທ່ານມີ ຄຳ ຖາມໃດໆ, ໃຫ້ສົ່ງພວກເຂົາໄປໃຊ້ຜ່ານແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.