Website-Suche

So installieren Sie PM2, um Node.js-Apps auf dem Produktionsserver auszuführen


PM2 ist ein kostenloser Open-Source-, fortschrittlicher, effizienter und plattformübergreifender Prozessmanager auf Produktionsebene für Node.js mit integriertem Load Balancer. Es funktioniert sowohl unter Linux, MacOS als auch unter Windows. Es unterstützt die App-Überwachung, die effiziente Verwaltung von Mikrodiensten/Prozessen, die Ausführung von Apps im Cluster-Modus sowie das ordnungsgemäße Starten und Herunterfahren von Apps.

Es hält Ihre Apps durch automatische Neustarts „für immer am Leben“ und kann so aktiviert werden, dass sie beim Systemstart gestartet werden, wodurch eine Hohe Verfügbarkeit (HA) ermöglicht wird. Konfigurationen oder Architekturen.

Insbesondere ermöglicht Ihnen PM2, Ihre Apps im Cluster-Modus auszuführen, ohne Änderungen an Ihrem Code vorzunehmen (dies hängt auch von der Anzahl der CPU-Kerne auf Ihrem Server ab). Außerdem können Sie App-Protokolle und vieles mehr einfach verwalten.

Darüber hinaus bietet es auch eine unglaubliche Unterstützung für die wichtigsten Node.js-Frameworks wie Express, Adonis Js, Sails , Hapi und mehr, ohne dass Codeänderungen erforderlich sind. PM2 wird von Unternehmen wie IBM, Microsoft, PayPal und anderen verwendet.

In diesem Artikel erklären wir, wie Sie PM2 installieren und verwenden, um Nodejs-Apps auf dem Linux-Produktionsserver auszuführen. Wir werden eine App erstellen, um einige der grundlegenden Funktionen von PM2 zu demonstrieren, damit Sie damit beginnen können.

Schritt 1: Installieren Sie Nodejs und NPM unter Linux

1. Um die neueste Version von Node.js und NPM zu installieren, müssen Sie zunächst das offizielle NodeSource-Repository unter Ihrer Linux-Distribution aktivieren und dann installieren Node.js- und NPM-Pakete wie gezeigt.

Auf 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

Auf CentOS/RHEL und 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 -

Schritt 2: Erstellen Sie eine Nodejs-Anwendung

2. Jetzt erstellen wir eine Testanwendung (wir gehen davon aus, dass sie eine Client- und eine Administratorseite hat, die dieselbe Datenbank nutzen). Die Microservices werden auf den Ports 3000 und ausgeführt 3001 bzw.

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

Kopieren Sie als Nächstes die folgenden Codeteile und fügen Sie sie in die Dateien server.js ein (ersetzen Sie 192.168.43.31 durch Ihre Server-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}/`);
});

Speichern Sie die Datei und beenden Sie den Vorgang.

Schritt 3: Installieren Sie PM2 Product Process Manager unter Linux

3. Die neueste stabile Version von PM2 kann wie gezeigt über NPM installiert werden.

sudo npm i -g pm2 

4. Sobald PM2 installiert ist, können Sie Ihre Knotenanwendungen mit den folgenden Befehlen starten.

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

Beachten Sie, dass Sie sie in einer Produktionsumgebung wie gezeigt mit PM2 starten sollten (Sie benötigen möglicherweise keinen Sudo-Befehl, wenn Ihre App an einem Ort gespeichert ist, an dem ein normaler Benutzer Lese- und Schreibberechtigungen hat).

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

Schritt 4: So verwenden und verwalten Sie PM2 unter Linux

5. Um eine Anwendung im Cluster-Modus zu starten, verwenden Sie beispielsweise das Flag -i, um die Anzahl der Instanzen anzugeben.

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

6. Um alle Ihre Knotenanwendungen (Prozesse/Mikrodienste) aufzulisten, führen Sie den folgenden Befehl aus.

sudo pm2 list

7. Um Protokolle, benutzerdefinierte Metriken und Prozessinformationen aus allen Prozessen zu überwachen, führen Sie den folgenden Befehl aus.

sudo pm2 monit

8. Um Details eines einzelnen Knotenprozesses wie gezeigt anzuzeigen, verwenden Sie die Prozess-ID oder den Namen.

sudo pm2 show 0

Schritt 5: So verwalten Sie Knoten-Apps mit PM2 unter Linux

9. Im Folgenden finden Sie eine Liste einiger allgemeiner Prozessverwaltungsbefehle (einzelner oder aller), die Sie beachten sollten.

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. Um Anwendungsprotokolle zu verwalten, verwenden Sie die folgenden Befehle.

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. Um den PM2-Prozess zu verwalten, verwenden Sie die folgenden Befehle.

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

Schritt 6: Greifen Sie über den Webbrowser auf Knoten-Apps zu

12. Um über einen Remote-Webbrowser auf alle Ihre Knotenanwendungen zuzugreifen, müssen Sie zunächst die folgenden Ports in Ihrer Systemfirewall öffnen, um Clientverbindungen zu den Apps wie gezeigt zuzulassen.

-------- 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. Greifen Sie dann über einen Webbrowser mit diesen URLs auf Ihre Apps zu:

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

Zu guter Letzt ist PM2 ein einfaches, integriertes Modulsystem zur Erweiterung seiner Kernfunktionen. Einige der Module umfassen pm2-logrotate, pm2-webshell, pm2-server-monit und mehr – Sie können auch eigene Module erstellen und verwenden.

Weitere Informationen finden Sie im PM2-GitHub-Repository: https://github.com/Unitech/PM2/.

Das ist alles! PM2 ist ein fortschrittlicher und effizienter Prozessmanager auf Produktionsebene für Node.js mit integriertem Load Balancer. In diesem Artikel haben wir gezeigt, wie Sie PM2 installieren und verwenden, um Nodejs-Apps unter Linux zu verwalten. Wenn Sie Fragen haben, senden Sie diese über das Kommentarformular unten an uns.