Cara Menginstal PM2 untuk Menjalankan Aplikasi Node.js di Server Produksi


PM2 adalah pengelola proses tingkat produksi sumber terbuka, canggih, efisien, dan lintas platform gratis untuk Node.js dengan penyeimbang beban bawaan. Ia bekerja di Linux, MacOS, dan juga Windows. Ini mendukung pemantauan aplikasi, manajemen layanan/proses mikro yang efisien, menjalankan aplikasi dalam mode cluster, memulai dan mematikan aplikasi dengan lancar.

Ini membuat aplikasi Anda “hidup selamanya ” dengan restart otomatis dan dapat diaktifkan untuk memulai saat boot sistem, sehingga memungkinkan Ketersediaan Tinggi (HA) konfigurasi atau arsitektur.

Khususnya, PM2 memungkinkan Anda menjalankan aplikasi dalam mode cluster tanpa membuat perubahan apa pun pada kode Anda (ini juga bergantung pada jumlah inti CPU di server Anda). Ini juga memungkinkan Anda mengelola log aplikasi dengan mudah, dan banyak lagi.

Selain itu, ia juga memiliki dukungan luar biasa untuk kerangka kerja Node.js utama seperti Express, Adonis Js, Sails , Hapi dan lainnya, tanpa memerlukan perubahan kode apa pun. PM2 digunakan oleh perusahaan seperti IBM, Microsoft, PayPal, dan banyak lagi.

Dalam artikel ini, kami akan menjelaskan cara memasang dan menggunakan PM2 untuk menjalankan aplikasi Nodejs di server produksi Linux. Kami akan membuat aplikasi untuk mendemonstrasikan beberapa fitur dasar PM2 agar Anda dapat memulainya.

Langkah 1: Instal Nodejs dan NPM di Linux

1. Untuk menginstal versi terbaru Node.js dan NPM, pertama-tama Anda harus mengaktifkan repositori NodeSource resmi di distribusi Linux Anda, lalu menginstal Paket Node.js dan NPM seperti yang ditunjukkan.

Di 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

Di CentOS/RHEL dan 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 -

Langkah 2: Buat Aplikasi Nodejs

2. Sekarang, mari kita buat aplikasi pengujian (kita asumsikan aplikasi tersebut memiliki sisi klien dan admin yang berbagi database yang sama), layanan mikro akan berjalan pada port 3000, dan 3001 masing-masing.

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

Selanjutnya copy dan paste potongan kode berikut pada file server.js (ganti 192.168.43.31 dengan IP server Anda).

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

Simpan file dan keluar.

Langkah 3: Instal Manajer Proses Produk PM2 di Linux

3. Versi stabil terbaru PM2 tersedia untuk diinstal melalui NPM seperti yang ditunjukkan.

sudo npm i -g pm2 

4. Setelah PM2 diinstal, Anda dapat memulai aplikasi node menggunakan perintah berikut.

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

Perhatikan bahwa, dalam lingkungan produksi, Anda harus memulainya menggunakan PM2, seperti yang ditunjukkan (Anda mungkin tidak memerlukan perintah sudo jika aplikasi Anda disimpan di lokasi di mana pengguna biasa memiliki izin membaca dan menulis).

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

Langkah 4: Cara Menggunakan dan Mengelola PM2 di Linux

5. Untuk memulai aplikasi dalam mode cluster, gunakan flag -i untuk menentukan jumlah instance, misalnya.

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

6. Untuk mencantumkan semua aplikasi node Anda (proses/layanan mikro), jalankan perintah berikut.

sudo pm2 list

7. Untuk memantau log, metrik khusus, proses informasi dari semua proses dengan menjalankan perintah berikut.

sudo pm2 monit

8. Untuk melihat detail proses Node tunggal seperti yang ditunjukkan, menggunakan ID atau nama proses.

sudo pm2 show 0

Langkah 5: Cara Mengelola Aplikasi Node Menggunakan PM2 di Linux

9. Berikut ini adalah daftar beberapa perintah manajemen proses umum (tunggal atau semua) yang harus Anda perhatikan.

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. Untuk mengelola log aplikasi, gunakan perintah berikut.

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. Untuk mengelola proses PM2, gunakan perintah berikut.

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

Langkah 6: Akses Aplikasi Node Dari Browser Web

12. Untuk mengakses semua aplikasi simpul Anda dari browser web jarak jauh, pertama-tama Anda perlu membuka port berikut di firewall sistem Anda, untuk mengizinkan koneksi klien ke aplikasi seperti yang ditunjukkan.

-------- 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. Kemudian akses aplikasi Anda dari browser web dengan URL berikut:

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

Yang terakhir, PM2 adalah sistem modul bawaan yang sederhana untuk memperluas kemampuan intinya, beberapa modul mencakup pm2-logrotate, pm2-webshell, pm2-server-monit, dan banyak lagi – Anda juga dapat membuat dan menggunakan modul Anda sendiri.

Untuk informasi lebih lanjut, buka repositori GitHub PM2: https://github.com/Unitech/PM2/.

Itu saja! PM2 adalah manajer proses tingkat produksi yang canggih dan efisien untuk Node.js dengan penyeimbang beban bawaan. Pada artikel ini, kami menunjukkan cara menginstal dan menggunakan PM2 untuk mengelola aplikasi Nodejs di Linux. Jika Anda memiliki pertanyaan, kirimkan pertanyaan tersebut untuk digunakan melalui formulir komentar di bawah.