Kif Tinstalla PM2 biex Tmexxi Node.js Apps fuq Production Server
PM2 huwa maniġer ta 'proċess ta' livell ta 'produzzjoni ta' sors miftuħ b'xejn, avvanzat, effiċjenti u trans-pjattaforma għal Node.js b'bilanċjar tat-tagħbija mibni. Jaħdem fuq Linux, MacOS kif ukoll Windows. Jappoġġja l-monitoraġġ tal-app, il-ġestjoni effiċjenti tal-mikro-servizzi/proċessi, it-tħaddim tal-apps fil-modalità cluster, bidu u għeluq graceful tal-apps.
Iżomm l-apps tiegħek \ħaj għal dejjem b'ristartjar awtomatiku u jista' jiġi attivat biex jibda mal-boot tas-sistema, u b'hekk jippermetti konfigurazzjonijiet jew arkitetturi ta' Disponibbiltà Għolja (HA).
Notevolment, PM2 jippermettilek tħaddem l-apps tiegħek fil-modalità cluster mingħajr ma tagħmel xi tibdil fil-kodiċi tiegħek (dan jiddependi wkoll min-numru ta 'cores CPU fuq is-server tiegħek). Jippermettilek ukoll li timmaniġġja faċilment zkuk tal-app, u ħafna aktar.
Barra minn hekk, għandu wkoll appoġġ inkredibbli għal oqfsa Node.js ewlenin bħal Express, Adonis Js, Sails, Hapi u aktar, mingħajr il-ħtieġa ta 'xi tibdil fil-kodiċi. PM2 qed jintuża minn kumpaniji bħal IBM, Microsoft, PayPal, u aktar.
F'dan l-artikolu, se nispjegaw kif tinstalla u tuża PM2 biex tħaddem apps Nodejs fis-server tal-produzzjoni tal-Linux. Aħna se noħolqu app biex nuru xi wħud mill-karatteristiċi fundamentali tal-PM2 biex tibda biha.
Pass 1: Installa Nodejs u NPM fil-Linux
1. Biex tinstalla l-aktar verżjoni riċenti ta 'Node.js u NPM, l-ewwel trid tippermetti r-repożitorju uffiċjali ta' NodeSource taħt id-distribuzzjoni Linux tiegħek u mbagħad tinstalla l-pakketti Node.js u NPM kif muri.
---------- 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 -
Pass 2: Oħloq Applikazzjoni Nodejs
2. Issa, ejja noħolqu applikazzjoni tal-ittestjar (se nassumu li għandha naħa tal-klijent u tal-amministratur li jaqsmu l-istess database), il-mikroservizzi se jaħdmu fuq il-portijiet 3000, u 3001 rispettivament.
$ 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
Sussegwentement, ikkupja u waħħal il-biċċiet tal-kodiċi li ġejjin fil-fajls server.js
(issostitwixxi 192.168.43.31 bl-IP tas-server tiegħek).
##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}/`); });
Issejvja l-fajl u oħroġ.
Pass 3: Installa PM2 Product Process Manager f'Linux
3. L-aħħar verżjoni stabbli ta 'PM2 hija disponibbli biex tinstalla permezz ta' NPM kif muri.
$ sudo npm i -g pm2
4. Ladarba PM2 installat, tista 'tibda l-applikazzjonijiet tan-nodi tiegħek billi tuża l-kmandi li ġejjin.
$ sudo node /var/www/html/app/server.js $ sudo node /var/www/html/adminside/server.js
Innota li, f'ambjent ta 'produzzjoni, għandek tibda tuża PM2, kif muri (ma jista' ma jkollokx bżonn kmand sudo jekk l-app tiegħek tkun maħżuna f'post fejn utent normali jkun jaqra u jikteb permessi).
$ sudo pm2 start /var/www/html/app/server.js $ sudo pm2 start /var/www/html/adminside/server.js
Pass 4: Kif tuża u timmaniġġja l-PM2 fil-Linux
5. Biex tibda applikazzjoni fil-modalità cluster billi tuża l-bandiera -i
biex tispeċifika n-numru ta' każijiet, pereżempju.
$ sudo pm2 start /var/www/html/app/server.js -i 4 $ sudo pm2 scale 0 8 #scale cluster app to 8 processes
6. Biex telenka l-applikazzjoni tan-nodi kollha tiegħek (proċess/mikroservizzi), mexxi l-kmand li ġej.
$ sudo pm2 list
7. Biex tissorvelja zkuk, metriċi tad-dwana, ipproċessa informazzjoni mill-proċessi kollha billi tħaddem il-kmand li ġej.
$ sudo pm2 monit
8. Biex tara d-dettalji ta 'proċess ta' Node wieħed kif muri, billi tuża l-ID tal-proċess jew l-isem.
$ sudo pm2 show 0
Pass 5: Kif Immaniġġja l-Apps Node Bl-użu tal-PM2 fil-Linux
9. Din li ġejja hija lista ta' xi proċessi komuni (wieħed jew kollha) kmandi ta' ġestjoni li għandek tieħu nota tagħhom.
$ 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. Biex timmaniġġja r-reġistri tal-applikazzjoni, uża l-kmandi li ġejjin.
$ 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. Biex timmaniġġja l-proċess PM2, uża l-kmandi li ġejjin.
$ 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
Pass 6: Aċċess Node Apps Mill-Web Browser
12. Biex taċċessa l-applikazzjoni kollha tan-nodi tiegħek minn web browser remot, l-ewwel trid tiftaħ il-portijiet li ġejjin fuq il-firewall tas-sistema tiegħek, biex tippermetti konnessjonijiet tal-klijenti mal-apps kif muri.
-------- 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. Imbagħad aċċess għall-apps tiegħek minn web browser b'dawn l-URLs:
http://198.168.43.31:3000 http://198.168.43.31:3001
Fl-aħħar iżda mhux l-inqas, PM2 hija sistema ta’ moduli sempliċi u integrata biex testendi l-kapaċitajiet ewlenin tagħha, uħud mill-moduli jinkludu pm2-logrotate, pm2-webshell, pm2-server-monit, u aktar - tista’ wkoll toħloq u tuża tiegħek moduli proprji.
Għal aktar informazzjoni, mur fir-repożitorju tal-PM2 GitHub: https://github.com/Unitech/PM2/.
Dak kollox! PM2 huwa maniġer tal-proċess ta 'livell ta' produzzjoni avvanzat u effiċjenti għal Node.js b'bilanċjar tat-tagħbija integrat. F'dan l-artikolu, urejna kif tinstalla u tuża PM2 biex timmaniġġja l-apps Nodejs fil-Linux. Jekk għandek xi mistoqsijiet, ibgħathom biex tużahom permezz tal-formola tal-kummenti hawn taħt.