So installieren Sie PM2, um Node.js Apps auf Production Server auszuführen

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

Es hält Ihre Apps “für immer lebendig”Mit automatischem Neustart und kann aktiviert werden, um beim Systemstart zu starten, wodurch ermöglicht wird Hohe Verfügbarkeit ((ER HAT) Konfigurationen oder Architekturen.

Vor allem, PM2 ermöglicht es Ihnen, Ihre Apps in auszuführen Cluster-Modus 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 hat es auch eine unglaubliche Unterstützung für Major Node.js Frameworks wie ausdrücken, Adonis Js, Segel, Schritt und mehr, ohne dass Codeänderungen erforderlich sind. PM2 wird von Unternehmen wie z IBM, Microsoft, PayPal, und mehr.

In diesem Artikel erklären wir die Installation und Verwendung PM2 laufen Nodejs Apps im Linux-Produktionsserver. 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. So installieren Sie die neueste Version von Node.js und NPMZuerst müssen Sie 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. Erstellen wir nun eine Testanwendung (wir gehen davon aus, dass sie eine Client- und eine Administratorseite hat, die dieselbe Datenbank verwenden). Die Microservices werden auf Ports ausgeführt 3000, und 3001 beziehungsweise.

$ 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 anschließend die folgenden Codeteile und fügen Sie sie in das Feld ein server.js Dateien (ersetzen 192.168.43.31 mit Ihrer 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 sie.

Schritt 3: Installieren Sie PM2 Product Process Manager unter Linux

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

$ sudo npm i -g pm2 

4. Einmal PM2 installiert, 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 mit verwenden sollten PM2wie gezeigt (Sie benötigen möglicherweise keinen sudo-Befehl, wenn Ihre App an einem Ort gespeichert ist, an dem ein normaler Benutzer über Lese- und Schreibberechtigungen verfügt).

$ sudo pm2 start /var/www/html/app/server.js
$ sudo pm2 start /var/www/html/adminside/server.js
Starten Sie die Nodejs App mit PM2
Starten Sie die Nodejs App mit PM2

Schritt 4: Verwenden und Verwalten von PM2 unter Linux

5. So starten Sie eine Anwendung im Cluster-Modus mit -i Flag, um beispielsweise 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. Führen Sie den folgenden Befehl aus, um alle Ihre Knotenanwendungen (Prozesse / Microservices) aufzulisten.

$ sudo pm2 list
Alle PM2 Managed Node Apps auflisten
Alle PM2 Managed Node Apps auflisten

7. Führen Sie den folgenden Befehl aus, um Protokolle und benutzerdefinierte Metriken zu überwachen und Informationen aus allen Prozessen zu verarbeiten.

$ sudo pm2 monit
Überwachen Sie alle Knotenprozesse
Überwachen Sie alle Knotenprozesse

8. Anzeigen der Details eines einzelnen Knotenprozesses wie gezeigt unter Verwendung der Prozess-ID oder des Namens.

$ sudo pm2 show 0
Details der einzelnen App anzeigen
Details der einzelnen App anzeigen

Schritt 5: Verwalten von Knoten-Apps mit PM2 unter Linux

9. Im Folgenden finden Sie eine Liste einiger gängiger Prozessverwaltungsbefehle (einzelne oder alle), die Sie zur Kenntnis nehmen 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. Verwenden Sie die folgenden Befehle, um Anwendungsprotokolle zu verwalten.

$ 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. Verwenden Sie die folgenden Befehle, um den PM2-Prozess zu verwalten.

$ 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: Zugriff auf Node Apps über den Webbrowser

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 folgenden URLs auf Ihre Apps zu:

http://198.168.43.31:3000
http://198.168.43.31:3001 
Greifen Sie über den Browser auf Node Apps zu
Greifen Sie über den Browser auf Node Apps zu

Zu guter Letzt, PM2 ist 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 einem eingebauten 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.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *