उत्पादन सर्वर पर Node.js ऐप्स चलाने के लिए PM2 कैसे स्थापित करें


PM2 Node.js के लिए एक मुक्त खुला स्रोत, उन्नत, कुशल और क्रॉस-प्लेटफ़ॉर्म उत्पादन-स्तरीय प्रक्रिया प्रबंधक है, जो बिल्ट-इन लोड बैलेंसर के साथ है। यह लिनक्स, मैकओएस के साथ-साथ विंडोज पर भी काम करता है। यह एप की निगरानी,सूक्ष्म सेवाओं/प्रक्रियाओं के कुशल प्रबंधन, क्लस्टर मोड में चल रहे ऐप, सुशोभित शुरुआत और ऐप्स को बंद करने का समर्थन करता है।

यह आपके ऐप्स को " हमेशा के लिए जीवित " रखता है और ऑटो रीस्टार्ट से शुरू होता है और सिस्टम बूट पर शुरू करने के लिए सक्षम किया जा सकता है, इस प्रकार उच्च उपलब्धता ( हा ) के लिए अनुमति देता है। विन्यास या स्थापत्य।

विशेष रूप से, PM2 आपको अपने कोड में बिना किसी बदलाव के (बिना यह भी बताता है कि आपके ऐप्स को आपके सर्वर पर CPU कोर की संख्या पर निर्भर करता है) क्लस्टर मोड में चलाने की अनुमति देता है। यह आपको ऐप लॉग को आसानी से प्रबंधित करने की अनुमति देता है, और बहुत कुछ।

इसके अलावा, इसमें प्रमुख Node.js फ्रेमवर्क जैसे कि एक्सप्रेस , Adonis Js , Sails का भी अविश्वसनीय समर्थन है। , हापी और अधिक, बिना किसी कोड परिवर्तन की आवश्यकता के। PM2 का उपयोग कंपनियों द्वारा किया जा रहा है जैसे IBM , Microsoft , PayPal , और अधिक।

इस लेख में, हम बताएंगे कि लिनक्स प्रोडक्शन सर्वर में Nodejs ऐप्स को चलाने के लिए PM2 कैसे इंस्टॉल करें और उपयोग करें। हम आपको इसके साथ आरंभ करने के लिए PM2 की कुछ मूलभूत विशेषताओं को प्रदर्शित करने के लिए एक ऐप बनाएंगे।

चरण 1: लिनक्स में Nodejs और NPM स्थापित करें

1। Node.js और NPM के सबसे हाल के संस्करण को स्थापित करने के लिए, पहले आपको अपने लिनक्स वितरण के तहत आधिकारिक NodeSource रिपॉजिटरी को सक्षम करने की आवश्यकता है और फिर इंस्टॉल करें दिखाए गए अनुसार Node.js और NPM पैकेज।

---------- 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: एक नोड्स एप्लिकेशन बनाएं

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 बदलें)।

##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 उत्पाद प्रक्रिया प्रबंधक स्थापित करें

3 PM2 का नवीनतम स्थिर संस्करण NPM के माध्यम से स्थापित करने के लिए उपलब्ध है जैसा कि दिखाया गया है।

$ sudo npm i -g pm2 

4। एक बार PM2 स्थापित करने के बाद, आप निम्न आदेशों का उपयोग करके अपने नोड अनुप्रयोगों को शुरू कर सकते हैं।

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

ध्यान दें, एक उत्पादन वातावरण में, आपको उन्हें PM2 का उपयोग करके शुरू करना चाहिए, जैसा कि दिखाया गया है (यदि आपका ऐप किसी ऐसे स्थान पर संग्रहीत है जहां एक सामान्य उपयोगकर्ता ने अनुमतियों को पढ़ा और लिखा है) तो आपको sudo कमांड की आवश्यकता नहीं हो सकती है।

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

चरण 4: लिनक्स में PM2 का उपयोग और प्रबंधन कैसे करें

5। उदाहरण के लिए उदाहरणों की संख्या निर्दिष्ट करने के लिए -i ध्वज का उपयोग करके क्लस्टर मोड में एक एप्लिकेशन शुरू करने के लिए।

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

6। अपने सभी नोड एप्लिकेशन (प्रक्रिया/माइक्रोसर्विसेज) को सूचीबद्ध करने के लिए, निम्न कमांड चलाएँ।

$ sudo pm2 list

7। लॉग, कस्टम मेट्रिक्स की निगरानी के लिए, निम्नलिखित कमांड को चलाकर सभी प्रक्रियाओं से जानकारी प्राप्त करें।

$ sudo pm2 monit

8। प्रक्रिया आईडी या नाम का उपयोग करके, एकल नोड प्रक्रिया का विवरण देखने के लिए।

$ sudo pm2 show 0

चरण 5: लिनक्स में PM2 का उपयोग करते हुए नोड ऐप्स कैसे प्रबंधित करें

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: वेब ब्राउज़र से नोड एप्स एक्सेस करें

12। दूरस्थ वेब ब्राउज़र से अपने सभी नोड एप्लिकेशन तक पहुंचने के लिए, सबसे पहले आपको अपने सिस्टम फ़ायरवॉल पर निम्नलिखित पोर्ट खोलने की आवश्यकता है, ताकि दिखाए गए एप्लिकेशन को क्लाइंट कनेक्शन की अनुमति मिल सके।

-------- 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। फिर इन 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 के लिए एक उन्नत और कुशल उत्पादन-स्तरीय प्रक्रिया प्रबंधक है, जिसमें एक अंतर्निहित लोड बैलेंसर है। इस लेख में, हमने दिखाया कि लिनक्स में Nodejs ऐप्स को प्रबंधित करने के लिए PM2 को कैसे स्थापित और उपयोग किया जाए। यदि आपके कोई प्रश्न हैं, तो उन्हें नीचे टिप्पणी फ़ॉर्म के माध्यम से उपयोग करने के लिए भेजें।