Πώς να εγκαταστήσετε το PM2 για να εκτελέσετε εφαρμογές Node.js στον διακομιστή παραγωγής


Το PM2 είναι ένας δωρεάν ανοιχτός κώδικας, προηγμένος, αποτελεσματικός και πολλαπλών πλατφορμών διαχείρισης διαδικασίας σε επίπεδο παραγωγής για το Node.js με ενσωματωμένο εξισορροπητή φορτίου. Λειτουργεί σε Linux, MacOS καθώς και σε Windows. Υποστηρίζει παρακολούθηση εφαρμογών, αποτελεσματική διαχείριση μικροϋπηρεσιών/διαδικασιών, εκτέλεση εφαρμογών σε λειτουργία συμπλέγματος, χαριτωμένη εκκίνηση και τερματισμό εφαρμογών.

Διατηρεί τις εφαρμογές σας \ζωντανές για πάντα” με αυτόματη επανεκκίνηση και μπορεί να ενεργοποιηθεί για εκκίνηση κατά την εκκίνηση του συστήματος, επιτρέποντας έτσι την Υψηλή διαθεσιμότητα (HA ) διαμορφώσεις ή αρχιτεκτονικές.

Συγκεκριμένα, το PM2 σάς επιτρέπει να εκτελείτε τις εφαρμογές σας σε λειτουργία συμπλέγματος χωρίς να κάνετε αλλαγές στον κώδικά σας (αυτό εξαρτάται επίσης από τον αριθμό των πυρήνων της CPU στον διακομιστή σας). Σας επιτρέπει επίσης να διαχειρίζεστε εύκολα τα αρχεία καταγραφής εφαρμογών και πολλά άλλα.

Επιπλέον, έχει επίσης απίστευτη υποστήριξη για μεγάλα πλαίσια Node.js όπως τα Express, Adonis Js, Sails , Hapi και άλλα, χωρίς να χρειάζεται καμία αλλαγή κώδικα. Το PM2 χρησιμοποιείται από εταιρείες όπως οι IBM, Microsoft, PayPal και άλλες.

Σε αυτό το άρθρο, θα εξηγήσουμε πώς να εγκαταστήσετε και να χρησιμοποιήσετε το PM2 για την εκτέλεση εφαρμογών Nodejs σε διακομιστή παραγωγής Linux. Θα δημιουργήσουμε μια εφαρμογή για την επίδειξη ορισμένων από τα βασικά χαρακτηριστικά του PM2 για να ξεκινήσετε με αυτό.

Βήμα 1: Εγκαταστήστε τα Nodejs και NPM στο Linux

1. Για να εγκαταστήσετε την πιο πρόσφατη έκδοση του Node.js και του NPM, πρέπει πρώτα να ενεργοποιήσετε το επίσημο αποθετήριο NodeSource στη διανομή Linux και στη συνέχεια να το εγκαταστήσετε Πακέτα Node.js και NPM όπως φαίνεται.

Στο Debian/Ubuntu

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

Σε CentOS/RHEL και Fedora

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

2. Τώρα, ας δημιουργήσουμε μια εφαρμογή δοκιμής (θα υποθέσουμε ότι έχει μια πλευρά πελάτη και διαχειριστή που μοιράζονται την ίδια βάση δεδομένων), οι microservices θα εκτελούνται σε θύρες 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 Product Process Manager στο Linux

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 στο Linux

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 στο 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: Πρόσβαση σε εφαρμογές κόμβου από το πρόγραμμα περιήγησης Ιστού

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 GitHub: https://github.com/Unitech/PM2/.

Αυτό είναι όλο! Το PM2 είναι ένας προηγμένος και αποτελεσματικός διαχειριστής διεργασιών σε επίπεδο παραγωγής για το Node.js με ενσωματωμένο εξισορροπητή φορτίου. Σε αυτό το άρθρο, δείξαμε πώς να εγκαταστήσετε και να χρησιμοποιήσετε το PM2 για τη διαχείριση εφαρμογών Nodejs στο Linux. Εάν έχετε οποιεσδήποτε απορίες, στείλτε τις για χρήση μέσω της παρακάτω φόρμας σχολίων.