Logo Tuxnuxt
Published on

Tutorial Install PM2 dan Konfigurasi Nginx di Ubuntu 24.04

Authors

Tutorial Install PM2 dan Konfigurasi Nginx di Ubuntu 24.04 LTS- Ketika ingin mendeploy aplikasi berbasis Node.js ke production, kita memerlukan sebuah process manager agar aplikasi dapat terus berjalan tanpa henti. Biasanya, kita menjalankan aplikasi dengan perintah seperti node index.ts. Namun, di production, menjalankan perintah ini secara manual tentu tidak praktis. Karena itu, kita membutuhkan cara agar aplikasi dapat berjalan otomatis dan tetap aktif meskipun terjadi restart server. Salah satu process manager yang populer dan andal untuk kebutuhan ini adalah PM2.

Tutorial Install PM2 dan Konfigurasi Nginx di Ubuntu 24.04

Apa itu PM2?

PM2 adalah process manager untuk aplikasi Node.js yang memungkinkan kita menjalankan aplikasi secara stabil di background, otomatis restart jika terjadi crash, serta menyediakan fitur monitoring dan logging yang lengkap. Dengan PM2, kita bisa memastikan aplikasi tetap hidup 24/7, bahkan setelah server reboot.

Cara Install PM2

Untuk menginstall pm2, pastikan sudah menginstall node.js sebelumnya, jika belum ikuti langkah di artikel sebelumnya berikut ini: Tutorial Install Node.js di ubuntu 24.04.

JIka sudah terinstall, silakan ketikan perintah berikut:

npm install -g pm2

Tekan enter, dan tunggu sampai proses selesai. Jika sudah selesai coba cek dengan mengetikan:

pm2 list

Jika pm2 sudah terinstall dengan baik, seharusnya ada tabel pm2 yang kosong.

Menjalankan Aplikasi Node.js dengan PM2

Misalnya kamu punya file index.ts (atau yang sudah dikompilasi jadi index.js):

pm2 start index.js --name nama-aplikasi

Jika kamu masih menggunakan TypeScript, pastikan aplikasimu sudah dikompilasi menjadi JavaScript menggunakan tsc.

Setelah pm2 jalan, kita perlu menyimpan konfigurasi pm2 serta agar pm2 ini jalan ketika server booting kembali / restart, dengan mengetikan:

pm2 save
pm2 startup

Setelah mengetik pm2 startup, biasanya akan ada suruhan mengetikan script path ke environment ubuntunya, kalian tinggal copy pastekan saja (biasanya diminta pakai sudo) lalu enter.

Selain itu, berikut ada beberapa perintah dasar PM2 yang berguna lainnya:

PerintahDeskripsi
pm2 listMelihat daftar aplikasi yang dijalankan oleh PM2
pm2 logsMelihat log aplikasi secara real-time
pm2 restart nama-aplikasiMerestart aplikasi tertentu
pm2 stop nama-aplikasiMenghentikan aplikasi tertentu
pm2 delete nama-aplikasiMenghapus aplikasi dari daftar PM2
pm2 saveMenyimpan konfigurasi PM2 agar otomatis dimulai ulang saat server reboot
pm2 startupGenerate skrip untuk autostart saat server menyala kembali

Menggunakan PM2 Bersama Nginx

Biasanya kita tidak langsung membuka port Node.js ke publik. Sebagai gantinya, kita gunakan Nginx sebagai reverse proxy.

Misal aplikasi kamu berjalan di port 3000, kamu bisa setup Nginx seperti ini:

1. Buka dan edit file konfigurasi Nginx

sudo nano /etc/nginx/sites-available/my-app

2. Isi dengan konfigurasi berikut:

server {
    listen 80;
    server_name domainkamu.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

3. Simpan dan aktifkan konfigurasi:

sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Penutup

Dengan menggunakan PM2 dan Nginx, kamu bisa memastikan aplikasi Node.js tetap berjalan stabil di production, sekaligus memberikan lapisan pengamanan dan fleksibilitas dari sisi web server. PM2 membantu menjalankan aplikasi secara otomatis, sedangkan Nginx berfungsi sebagai perantara antara pengguna dan aplikasimu.

Dan jangan lupa, apabila ada perubahan pada kode aplikasi, lakukan restart pada PM2 agar perubahan tersebut diterapkan dengan benar. Kamu bisa menggunakan perintah berikut:

pm2 restart nama-aplikasi

Dengan begitu, kamu bisa memastikan versi terbaru dari aplikasi langsung aktif tanpa perlu mematikan server secara manual.


Semoga bermanfaat.

Terimakasih
(Tuxnuxt.com)