Vyhledávání na webu

Jak nainstalovat PM2 ke spouštění aplikací Node.js na produkčním serveru


PM2 je bezplatný open source, pokročilý, efektivní a multiplatformní správce procesů na produkční úrovni pro Node.js s vestavěným nástrojem pro vyrovnávání zatížení. Funguje na Linuxu, MacOS i Windows. Podporuje monitorování aplikací, efektivní správu mikroslužeb/procesů, spouštění aplikací v režimu clusteru, elegantní spouštění a vypínání aplikací.

Udržuje vaše aplikace „navždy naživu“ pomocí automatického restartování a lze povolit spuštění při spouštění systému, což umožňuje Vysokou dostupnost (HA) konfigurace nebo architektury.

Zejména PM2 vám umožňuje spouštět aplikace v klastrovém režimu, aniž byste museli provádět jakékoli změny v kódu (závisí to také na počtu jader CPU na vašem serveru). Umožňuje vám také snadno spravovat protokoly aplikací a mnoho dalšího.

Kromě toho má také neuvěřitelnou podporu pro hlavní rámce Node.js, jako jsou Express, Adonis Js, Sails , Hapi a další, bez nutnosti jakýchkoli změn kódu. PM2 používají společnosti jako IBM, Microsoft, PayPal a další.

V tomto článku vysvětlíme, jak nainstalovat a používat PM2 ke spouštění aplikací Nodejs na produkčním serveru Linux. Vytvoříme aplikaci pro předvedení některých základních funkcí PM2, abyste s ní mohli začít.

Krok 1: Nainstalujte Nodejs a NPM v Linuxu

1. Chcete-li nainstalovat nejnovější verzi Node.js a NPM, musíte nejprve povolit oficiální úložiště NodeSource ve vaší distribuci Linuxu a poté nainstalovat Balíčky Node.js a NPM, jak je znázorněno.

Na 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

Na CentOS/RHEL a Fedoře

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

Krok 2: Vytvořte aplikaci Nodejs

2. Nyní vytvořte testovací aplikaci (předpokládejme, že má stranu klienta a správce, kteří sdílejí stejnou databázi), mikroslužby poběží na portech 3000 a 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

Dále zkopírujte a vložte následující části kódu do souborů server.js (192.168.43.31 nahraďte IP adresou vašeho serveru).

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

Uložte soubor a ukončete.

Krok 3: Nainstalujte PM2 Product Process Manager v Linuxu

3. Nejnovější stabilní verzi PM2 je možné nainstalovat prostřednictvím NPM, jak je znázorněno.

sudo npm i -g pm2 

4. Po instalaci PM2 můžete spustit aplikace uzlů pomocí následujících příkazů.

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

Pamatujte, že v produkčním prostředí byste je měli spouštět pomocí PM2, jak je znázorněno (příkaz sudo možná nebudete potřebovat, pokud je vaše aplikace uložena v umístění, kde má běžný uživatel oprávnění ke čtení a zápisu).

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

Krok 4: Jak používat a spravovat PM2 v Linuxu

5. Chcete-li spustit aplikaci v režimu clusteru, například pomocí parametru -i specifikujte počet instancí.

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

6. Chcete-li vypsat všechny své uzlové aplikace (procesy/mikroslužby), spusťte následující příkaz.

sudo pm2 list

7. Chcete-li sledovat protokoly, vlastní metriky, zpracujte informace ze všech procesů spuštěním následujícího příkazu.

sudo pm2 monit

8. Chcete-li zobrazit podrobnosti o jednom procesu uzlu, jak je znázorněno, pomocí ID nebo názvu procesu.

sudo pm2 show 0

Krok 5: Jak spravovat aplikace uzlů pomocí PM2 v systému Linux

9. Následuje seznam některých běžných příkazů správy procesů (jednoho nebo všech), které byste měli vzít na vědomí.

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. Ke správě protokolů aplikací použijte následující příkazy.

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. Ke správě procesu PM2 použijte následující příkazy.

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

Krok 6: Přístup k Node Apps z webového prohlížeče

12. Chcete-li přistupovat ke všem aplikacím uzlu ze vzdáleného webového prohlížeče, musíte nejprve otevřít následující porty na vaší systémové bráně firewall, abyste umožnili připojení klientů k aplikacím, jak je uvedeno na obrázku.

-------- 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. Poté přistupujte ke svým aplikacím z webového prohlížeče pomocí těchto adres URL:

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

V neposlední řadě je PM2 jednoduchý, vestavěný modulový systém pro rozšíření jeho základních schopností. Některé z modulů zahrnují pm2-logrotate, pm2-webshell, pm2-server-monit a další – můžete také vytvářet a používat své vlastní moduly.

Další informace najdete v úložišti PM2 GitHub: https://github.com/Unitech/PM2/.

To je vše! PM2 je pokročilý a efektivní správce procesů na úrovni výroby pro Node.js s vestavěným nástrojem pro vyrovnávání zatížení. V tomto článku jsme ukázali, jak nainstalovat a používat PM2 ke správě aplikací Nodejs v Linuxu. Pokud máte nějaké dotazy, pošlete je k použití prostřednictvím níže uvedeného formuláře pro komentáře.