Cum se instalează PM2 pentru a rula aplicațiile Node.js pe serverul de producție
PM2 este un manager de procese gratuit, avansat, eficient și multiplatform la nivel de producție pentru Node.js, cu un echilibrator de încărcare încorporat. Funcționează pe Linux, MacOS și Windows. Acceptă monitorizarea aplicațiilor, gestionarea eficientă a micro-serviciilor/proceselor, rularea aplicațiilor în modul cluster, pornirea și închiderea grațioasă a aplicațiilor.
Vă menține aplicațiile „în viață pentru totdeauna” cu reporniri automate și poate fi activat să pornească la pornirea sistemului, permițând astfel Disponibilitate ridicată (HA ) configurații sau arhitecturi.
În special, PM2 vă permite să rulați aplicațiile în modul cluster fără a face modificări în codul dvs. (acest lucru depinde și de numărul de nuclee CPU de pe server). De asemenea, vă permite să gestionați cu ușurință jurnalele de aplicații și multe altele.
În plus, are, de asemenea, un suport incredibil pentru cadre importante Node.js, cum ar fi Express, Adonis Js, Sails , Hapi și multe altele, fără a fi nevoie de nicio modificare a codului. PM2 este folosit de companii precum IBM, Microsoft, PayPal și multe altele.
În acest articol, vom explica cum să instalați și să utilizați PM2 pentru a rula aplicații Nodejs pe serverul de producție Linux. Vom crea o aplicație pentru a demonstra unele dintre caracteristicile fundamentale ale PM2, pentru ca dvs. să începeți cu ea.
Pasul 1: Instalați Nodejs și NPM în Linux
1. Pentru a instala cea mai recentă versiune a Node.js și NPM, mai întâi trebuie să activați depozitul oficial NodeSource sub distribuția dvs. Linux și apoi să instalați Pachetele Node.js și NPM după cum se arată.
Pe 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
Pe CentOS/RHEL și 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 -
Pasul 2: Creați o aplicație Nodejs
2. Acum, să creăm o aplicație de testare (vom presupune că are o parte de client și de administrator care au aceeași bază de date), microserviciile vor rula pe porturile 3000 și 3001 respectiv.
$ 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
Apoi, copiați și inserați următoarele bucăți de cod în fișierele server.js
(înlocuiți 192.168.43.31 cu IP-ul serverului).
##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}/`); });
Salvați fișierul și ieșiți.
Pasul 3: Instalați PM2 Product Process Manager în Linux
3. Cea mai recentă versiune stabilă a PM2 poate fi instalată prin NPM, după cum se arată.
$ sudo npm i -g pm2
4. Odată instalat PM2, puteți porni aplicațiile nod folosind următoarele comenzi.
$ sudo node /var/www/html/app/server.js $ sudo node /var/www/html/adminside/server.js
Rețineți că, într-un mediu de producție, ar trebui să le porniți folosind PM2, după cum se arată (s-ar putea să nu aveți nevoie de comanda sudo dacă aplicația dvs. este stocată într-o locație în care un utilizator normal are permisiuni de citire și scriere).
$ sudo pm2 start /var/www/html/app/server.js $ sudo pm2 start /var/www/html/adminside/server.js
Pasul 4: Cum să utilizați și să gestionați PM2 în Linux
5. Pentru a porni o aplicație în modul cluster folosind indicatorul -i
pentru a specifica numărul de instanțe, de exemplu.
$ sudo pm2 start /var/www/html/app/server.js -i 4 $ sudo pm2 scale 0 8 #scale cluster app to 8 processes
6. Pentru a lista toate aplicațiile nod (proces/microservicii), rulați următoarea comandă.
$ sudo pm2 list
7. Pentru a monitoriza jurnalele, valorile personalizate, procesați informațiile din toate procesele rulând următoarea comandă.
$ sudo pm2 monit
8. Pentru a vedea detaliile unui singur proces Nod așa cum se arată, folosind ID-ul sau numele procesului.
$ sudo pm2 show 0
Pasul 5: Cum să gestionați aplicațiile Node folosind PM2 în Linux
9. Următoarea este o listă a unor comenzi comune de gestionare a proceselor (un singur sau integral) de care ar trebui să țineți cont.
$ 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. Pentru a gestiona jurnalele aplicațiilor, utilizați următoarele comenzi.
$ 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. Pentru a gestiona procesul PM2, utilizați următoarele comenzi.
$ 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
Pasul 6: Accesați aplicațiile Node din browserul web
12. Pentru a accesa toate aplicațiile nod dintr-un browser web la distanță, mai întâi trebuie să deschideți următoarele porturi pe firewall-ul sistemului, pentru a permite conexiunile client la aplicații, așa cum se arată.
-------- 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. Apoi accesați aplicațiile dvs. dintr-un browser web cu aceste adrese URL:
http://198.168.43.31:3000 http://198.168.43.31:3001
Nu în ultimul rând, PM2 este un sistem de module simplu, încorporat pentru a-și extinde capacitățile de bază, unele dintre module includ pm2-logrotate, pm2-webshell, pm2-server-monit și multe altele - de asemenea, puteți crea și utiliza propriile module.
Pentru mai multe informații, accesați depozitul PM2 GitHub: https://github.com/Unitech/PM2/.
Asta e tot! PM2 este un manager de proces avansat și eficient la nivel de producție pentru Node.js, cu un echilibrator de încărcare încorporat. În acest articol, am arătat cum să instalați și să utilizați PM2 pentru a gestiona aplicațiile Nodejs în Linux. Dacă aveți întrebări, trimiteți-le pentru a le folosi prin formularul de comentarii de mai jos.