PM2:n asentaminen Node.js-sovellusten suorittamiseksi tuotantopalvelimella


PM2 on ilmainen avoimen lähdekoodin, edistynyt, tehokas ja eri alustojen tuotantotason prosessinhallinta Node.js:lle, jossa on sisäänrakennettu kuormituksen tasapainotin. Se toimii Linuxissa, MacOS:ssa ja Windowsissa. Se tukee sovellusten seurantaa, mikropalvelujen/prosessien tehokasta hallintaa, sovellusten käyttöä klusteritilassa, sovellusten sulavaa käynnistystä ja sammuttamista.

Se pitää sovelluksesi "elossa ikuisesti" automaattisella uudelleenkäynnistyksellä, ja se voidaan ottaa käyttöön järjestelmän käynnistyksen yhteydessä, mikä mahdollistaa korkean käytettävyyden (HA) kokoonpanoissa tai arkkitehtuureissa.

Erityisesti PM2 antaa sinun ajaa sovelluksiasi klusteritilassa tekemättä mitään muutoksia koodiisi (tämä riippuu myös palvelimesi suoritinytimien määrästä). Sen avulla voit myös hallita helposti sovelluslokeja ja paljon muuta.

Lisäksi sillä on myös uskomaton tuki tärkeimmille Node.js-kehyksille, kuten Express, Adonis Js, Sails. , Hapi ja paljon muuta, ilman koodimuutoksia. PM2:ta käyttävät yritykset, kuten IBM, Microsoft, PayPal ja muut.

Tässä artikkelissa selitämme, kuinka PM2 asennetaan ja käytetään Nodejs -sovellusten suorittamiseen Linuxin tuotantopalvelimessa. Luomme sovelluksen, joka esittelee joitain PM2:n perusominaisuuksia, jotta voit aloittaa sen käytön.

Vaihe 1: Asenna Nodejs ja NPM Linuxiin

1. Jotta voit asentaa uusimman Node.js-- ja NPM-version, sinun on ensin otettava käyttöön virallinen NodeSource-tietovarasto Linux-jakelussasi ja asennettava sitten Node.js- ja NPM-paketit kuvan mukaisesti.

Debianissa/Ubuntussa

---------- 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:ssä ja Fedorassa

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

Vaihe 2: Luo Nodejs-sovellus

2. Luodaan nyt testaussovellus (oletetaan, että sillä on asiakas- ja järjestelmänvalvojapuoli, jotka jakavat saman tietokannan), mikropalvelut toimivat porteissa 3000 ja 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

Kopioi ja liitä seuraavaksi seuraavat koodinpalat server.js-tiedostoihin (korvaa 192.168.43.31 palvelimesi IP-osoitteella).

##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}/`);
});

Tallenna tiedosto ja poistu.

Vaihe 3: Asenna PM2 Product Process Manager Linuxiin

3. PM2:n uusin vakaa versio on asennettavissa NPM:n kautta kuvan mukaisesti.

sudo npm i -g pm2 

4. Kun PM2 on asennettu, voit käynnistää solmusovelluksesi käyttämällä seuraavia komentoja.

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

Huomaa, että tuotantoympäristössä sinun tulee käynnistää ne PM2:lla kuvan mukaisesti (et ehkä tarvitse sudo-komentoa, jos sovelluksesi on tallennettu paikkaan, jossa tavallisella käyttäjällä on luku- ja kirjoitusoikeudet).

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

Vaihe 4: PM2:n käyttö ja hallinta Linuxissa

5. Sovelluksen käynnistäminen klusteritilassa käyttämällä -i-lippua esimerkiksi määrittämään esiintymien lukumäärä.

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

6. Listaa kaikki solmusovelluksesi (prosessi/mikropalvelut) suorittamalla seuraava komento.

sudo pm2 list

7. Jos haluat valvoa lokeja ja mukautettuja mittareita, käsittele kaikkien prosessien tiedot suorittamalla seuraava komento.

sudo pm2 monit

8. Voit tarkastella yksittäisen solmuprosessin tietoja kuvan mukaisesti käyttämällä prosessin tunnusta tai nimeä.

sudo pm2 show 0

Vaihe 5: Solmusovellusten hallinta PM2:n avulla Linuxissa

9. Seuraavassa on luettelo yleisistä prosessinhallintakomennoista (yksittäinen tai kaikki), jotka sinun tulee huomioida.

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. Voit hallita sovelluslokeja käyttämällä seuraavia komentoja.

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. Voit hallita PM2-prosessia käyttämällä seuraavia komentoja.

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

Vaihe 6: Käytä solmusovelluksia verkkoselaimesta

12. Jos haluat käyttää kaikkia solmusovelluksiasi etäselaimella, sinun on ensin avattava seuraavat portit järjestelmän palomuurissa, jotta asiakasyhteydet sovelluksiin voidaan muodostaa kuvan mukaisesti.

-------- 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. Käytä sitten sovelluksiasi verkkoselaimella näillä URL-osoitteilla:

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

Viimeisenä mutta ei vähäisimpänä, PM2 on yksinkertainen, sisäänrakennettu moduulijärjestelmä, joka laajentaa sen ydinominaisuuksia. Osa moduuleista sisältää pm2-logrotate, pm2-webshell, pm2-server-monit ja paljon muuta – voit myös luoda ja käyttää omia moduuleja.

Saat lisätietoja siirtymällä PM2 GitHub -tietovarastoon: https://github.com/Unitech/PM2/.

Siinä kaikki! PM2 on edistynyt ja tehokas tuotantotason prosessinhallinta Node.js:lle, jossa on sisäänrakennettu kuormitustasa. Tässä artikkelissa osoitimme, kuinka PM2 asennetaan ja kuinka sitä käytetään Nodejs-sovellusten hallintaan Linuxissa. Jos sinulla on kysyttävää, lähetä ne käytettäväksi alla olevan kommenttilomakkeen kautta.