Üretim Sunucusunda Node.js Uygulamalarını Çalıştırmak için PM2 Nasıl Kurulur


PM2, yerleşik yük dengeleyiciye sahip, Node.js için ücretsiz, açık kaynaklı, gelişmiş, verimli ve platformlar arası üretim düzeyinde süreç yöneticisidir. Linux, MacOS ve Windows'ta çalışır. Uygulama izlemeyi, mikro hizmetlerin/süreçlerin verimli yönetimini, uygulamaları küme modunda çalıştırmayı, uygulamaların zarif bir şekilde başlatılmasını ve kapatılmasını destekler.

Otomatik yeniden başlatmalarla uygulamalarınızı "sonsuza kadar canlı" tutar ve sistem önyüklemesinde başlatılması etkinleştirilebilir, böylece Yüksek Kullanılabilirlik (HA) sağlanır. konfigürasyonlar veya mimariler.

Özellikle, PM2, uygulamalarınızı kodunuzda herhangi bir değişiklik yapmadan küme modunda çalıştırmanıza olanak tanır (bu aynı zamanda sunucunuzdaki CPU çekirdeği sayısına da bağlıdır). Ayrıca uygulama günlüklerini ve çok daha fazlasını kolayca yönetmenize olanak tanır.

Ayrıca Express, Adonis Js, Sails gibi başlıca Node.js çerçeveleri için de inanılmaz bir desteğe sahiptir. , Hapi ve daha fazlasını, herhangi bir kod değişikliğine gerek kalmadan yapın. PM2, IBM, Microsoft, PayPal ve daha birçok şirket tarafından kullanılıyor.

Bu makalede, Linux üretim sunucusunda Nodejs uygulamalarını çalıştırmak için PM2'nin nasıl kurulacağını ve kullanılacağını açıklayacağız. PM2'nin temel özelliklerinden bazılarını göstermeye başlamanız için bir uygulama oluşturacağız.

Adım 1: Nodejs ve NPM'yi Linux'a yükleyin

1. Node.js ve NPM'nin en son sürümünü yüklemek için öncelikle Linux dağıtımınızda resmi NodeSource deposunu etkinleştirmeniz ve ardından yüklemeniz gerekir. Node.js ve NPM paketleri gösterildiği gibi.

Debian/Ubuntu'da

---------- 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 ve Fedora'da

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

Adım 2: Nodejs Uygulaması Oluşturun

2. Şimdi bir test uygulaması oluşturalım (aynı veritabanını paylaşan bir istemci ve yönetici tarafı olduğunu varsayacağız), mikro hizmetler 3000 bağlantı noktalarında çalışacak ve Sırasıyla 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

Daha sonra, aşağıdaki kod parçalarını server.js dosyalarına kopyalayıp yapıştırın (192.168.43.31'i sunucunuzun IP'siyle değiştirin).

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

Dosyayı kaydet ve çık.

3. Adım: PM2 Ürün Süreç Yöneticisini Linux'a yükleyin

3. PM2'nin en son kararlı sürümü, gösterildiği gibi NPM yoluyla yüklenebilir.

sudo npm i -g pm2 

4. PM2 kurulduktan sonra aşağıdaki komutları kullanarak düğüm uygulamalarınızı başlatabilirsiniz.

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

Üretim ortamında bunları gösterildiği gibi PM2 kullanarak başlatmanız gerektiğini unutmayın (uygulamanız normal bir kullanıcının okuma ve yazma izinlerine sahip olduğu bir konumda depolanıyorsa sudo komutuna ihtiyacınız olmayabilir).

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

Adım 4: Linux'ta PM2 Nasıl Kullanılır ve Yönetilir

5. Örnek sayısını belirtmek için -i işaretini kullanarak küme modunda bir uygulamayı başlatmak için.

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

6. Tüm düğüm uygulamanızı (işlem/mikro hizmetler) listelemek için aşağıdaki komutu çalıştırın.

sudo pm2 list

7. Günlükleri, özel metrikleri izlemek için aşağıdaki komutu çalıştırarak tüm işlemlerden bilgileri işleyin.

sudo pm2 monit

8. Gösterildiği gibi tek bir Düğüm işleminin ayrıntılarını, işlem kimliğini veya adını kullanarak görüntülemek için.

sudo pm2 show 0

Adım 5: Linux'ta PM2 Kullanarak Düğüm Uygulamalarını Yönetme

9. Aşağıda dikkate almanız gereken bazı genel süreç (tek veya tüm) yönetim komutlarının bir listesi bulunmaktadır.

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. Uygulama günlüklerini yönetmek için aşağıdaki komutları kullanın.

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. PM2 sürecini yönetmek için aşağıdaki komutları kullanın.

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

Adım 6: Web Tarayıcısından Node Uygulamalarına Erişin

12. Tüm düğüm uygulamanıza uzak bir web tarayıcısından erişmek için, önce gösterildiği gibi uygulamalara istemci bağlantılarına izin vermek üzere sistem güvenlik duvarınızda aşağıdaki bağlantı noktalarını açmanız gerekir.

-------- 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. Ardından uygulamalarınıza şu URL'leri kullanarak bir web tarayıcısından erişin:

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

Son olarak, PM2 temel yeteneklerini genişletmek için basit, yerleşik bir modül sistemidir; modüllerden bazıları pm2-logrotate, pm2-webshell, pm2-server-monit ve daha fazlasını içerir. ayrıca kendi modüllerinizi oluşturabilir ve kullanabilirsiniz.

Daha fazla bilgi için PM2 GitHub deposuna gidin: https://github.com/Unitech/PM2/.

Bu kadar! PM2, Node.js için yerleşik yük dengeleyiciye sahip gelişmiş ve verimli, üretim düzeyinde bir süreç yöneticisidir. Bu yazımızda Linux'ta Nodejs uygulamalarını yönetmek için PM2'nin nasıl kurulacağını ve kullanılacağını gösterdik. Sorularınız varsa aşağıdaki yorum formunu kullanarak bunları kullanmak üzere gönderin.