Cara Efisien Deploy Aplikasi Node.js di Ubuntu dengan PM2 dan Nginx
DomaiNesians mau deploy aplikasi Node.js di server Ubuntu? Salah satu cara paling efektif buat running aplikasi Node.js di Ubuntu adalah dengan menggunakan PM2 untuk manajemen proses dan Nginx sebagai reverse proxy. Kalau kamu menggabungkan PM2 dan Nginx untuk menjalankan aplikasi Node.js, hasilnya bisa lebih stabil, tidak mudah down, dan akses ke aplikasi juga jadi lebih cepat. Di artikel ini, kita bakal bahas cara setting-nya step by step agar project kamu bisa langsung jalan tanpa ribet.
Install Node.js & Deploy AplikasiÂ
Sebelum mulai deploy aplikasi Node.js, hal pertama yang perlu kamu lakukan adalah install Node.js di server Ubuntu. Ikutin step-step berikut:
1. Update sistem terlebih dahulu
Sebelum install apa-apa, pastiin sistem kamu up-to-date dulu dengan run perintah ini:
|
1 |
sudo apt update && sudo apt upgrade -y |
2. Install Node.js menggunakan NVM (Node Version Manager)
NVM memudahkan banget buat manage berbagai versi Node.js di server kamu. Untuk install NVM, tinggal run perintah ini:
|
1 |
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash |
Setelah itu, reload terminal kamu atau jalankan:
|
1 2 |
source ~/.bashrc nvm install node |
3. Verifikasi instalasi Node.js
Untuk memastikan bahwa Node.js dan npm (Node Package Manager) terinstall dengan benar, kamu bisa cek version dengan:
|
1 2 |
node -v npm -v |
4. Clone Project
Buat direktori khusus untuk aplikasi di /var/www/ atau /opt/ supaya lebih terorganisir. Misalnya sudo mkdir -p /var/www/myapp. Clone aplikasi Node.js kamu ke folder ini dengan perintah berikut:
|
1 2 |
code>cd /var/www/myapp git clone https://github.com/username/repository.git . |
5. Install DependenciesÂ
Setelah aplikasi berada di folder yang tepat, run perintah untuk install dependencies:
|
1 2 |
cd /var/www/myapp npm install |
Install dan Konfigurasi PM2
Sekarang, kita akan install dan atur PM2 buat manajemen proses aplikasi Node.js kamu. PM2 buat menjalankan aplikasi Node.js di background dan otomatis restart kalau misalnya aplikasi kamu crash atau server di-restart. Berikut cara install dan setting PM2-nya:
1. Install PM2
Setelah Node.js selesai diinstall, kamu bisa langsung install PM2 pakai npm. Cukup ketik aja:
|
1 |
sudo npm install pm2@latest -g |
2. Jalankan Aplikasi Node.js dengan PM2
Setelah PM2 berhail diinstall, bisa mulai run project Node.js kamu lewat PM2. PM2 akan menjalankan aplikasi kamu di background dan terus monitor prosesnya. Misalnya, kalau aplikasi kamu ada di file app.js, kamu tinggal ketik:
|
1 |
pm2 start app.js |
3. Cek Status Aplikasi yang Dijalankan PM2
Kalau kamu mau melihat status aplikasi yang lagi jalan lewat PM2, tinggal ketik aja:
|
1 |
pm2 status |
4. Biar PM2 Tetap Jalan Setelah Server Restart
Kalau server kamu di-reboot, PM2 bisa otomatis running aplikasi kamu lagi. Caranya gampang, tinggal ketik:
|
1 |
pm2 startup |
Setelah itu, PM2 akan memberi additional command yang perlu kamu jalankan buat set autostart.
5. Simpan Daftar Proses PM2
Terakhir, jangan lupa simpan project yang sudah berjalan lewat PM2 agar tetap terekam setelah restart:
|
1 |
pm2 save |
Set Up Nginx sebagai Reverse Proxy untuk Aplikasi Node.js
Reverse proxy ini berguna banget supaya aplikasi Node.js bisa diakses lewat domain yang lebih friendly dan supaya kamu bisa manage traffic lebih baik. Nginx juga bisa bantu handle load balancing dan mengarahkan request ke aplikasi yang tepat. Berikut step by step setting Nginx sebagai reverse proxy:
1. Install Nginx
Pertama, kita install Nginx di server Ubuntu kamu. Ketik aja:
|
1 2 |
sudo apt update sudo apt install nginx -y |
2. Setel Firewall
Kalau kamu pake UFW buat firewall, jangan lupa buka port 80 (HTTP) dan 443 (HTTPS) supaya Nginx bisa menerima request dari luar:
|
1 |
sudo ufw allow 'Nginx Full' |
3. Konfigurasi Nginx
Sekarang kita buat konfigurasi baru untuk aplikasi Node.js kamu. Buka file konfigurasi Nginx:
|
1 |
sudo nano /etc/nginx/sites-available/myapp |
Ganti myapp dengan nama aplikasi kamu. Di dalam file konfigurasi, tambah konfigurasi berikut:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
server {     listen 80;     server_name domain_atau_ip_server_kamu;     location / {         proxy_pass http://127.0.0.1:3000; # Ganti dengan port aplikasi Node.js kamu         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;     } } |
4. Aktifkan Konfigurasi Nginx
Setelah itu, aktifkan konfigurasi yang baru dibuat buat dengan symlink ke direktori sites-enabled:
|
1 |
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ |
5. Cek dan Restart Nginx
Setelah symlink selesai, pastikan Nginx tidak ada error dengan menjalankan:
|
1 2 |
sudo nginx -t nginx -s reload |
Testing & Troubleshooting
Setelah kamu berhasil deploy project Node.js pakai PM2 dan Nginx, langkah berikutnya cek apakah semuanya jalan dengan mulus. Berikut adalah beberapa step untuk menguji dan mengatasi trouble yang mungkin muncul:
1. Tes Aplikasi
Coba akses aplikasi melalui domain atau IP publik server di browser. Akses http://domain_atau_ip_server. Pastikan aplikasi muncul dengan benar di halaman browser.
2. Cek Status PM2
PM2 akan mengelola aplikasi kamu agar tetap berjalan di background. Untuk mengecek status aplikasi yang sedang dijalankan oleh PM2, gunakan:
|
1 |
pm2 list |
Kalau aplikasimu tidak muncul atau statusnya error, coba cek log-nya. Ini bisa bantu kamu ngecek error di aplikasi yang sedang running.:
|
1 |
pm2 logs myapp |
3. Periksa Nginx
Jika aplikasi tidak muncul, masalah bisa jadi ada di konfigurasi Nginx. Cek log Nginx untuk cek apakah ada error yang terdeteksi:
|
1 |
sudo tail -f /var/log/nginx/error.log |
Kalau muncul error di Nginx seperti port tidak sesuai atau server_name tidak sesuai, kamu bisa langsung cek dan perbaiki lewat file konfigurasinya.
Optimalkan Proses Deployment Aplikasi Node.js dan PM2
Menggunakan PM2 dan Nginx untuk deploy aplikasi Node.js di VPS adalah solusi yang sangat praktis, terutama kalau kamu ingin aplikasi berjalan stabil dan mudah dikelola. PM2 membantu dalam manajemen proses, memastikan aplikasi kamu tetap berjalan meski terjadi gangguan atau crash. Dengan PM2, aplikasi Node.js juga bisa otomatis restart jika terhenti, sehingga mengurangi downtime secara signifikan. Sementara itu, Nginx berfungsi sebagai reverse proxy yang mempercepat akses ke aplikasi dan menangani beban lalu lintas dengan lebih efisien.
Ketika digabungkan, PM2 dan Nginx memberikan kombinasi yang sangat powerful. PM2 menangani kestabilan dan proses aplikasi, sedangkan Nginx menangani pengaturan traffic dan mengoptimalkan respon dari aplikasi. Dengan pengaturan yang tepat, kedua tools ini tidak hanya membuat aplikasi kamu lebih scalable dan resilient, tetapi juga memudahkan pengelolaan dan pemeliharaan. Misalnya, meskipun server di-restart, aplikasi tetap berjalan tanpa gangguan, karena Nginx secara otomatis mengarahkan permintaan ke aplikasi yang sudah berjalan di baliknya. Hal ini membuat aplikasi DomaiNesians lebih mudah diakses dan lebih stabil untuk kebutuhan produksi.
Tidak cuma itu, VPS yang tepat juga memberi fleksibilitas buat atur semua resource sesuai kebutuhan. Jadi, kalau project kamu semakin berkembang atau membutuhkan kontrol lebih, Cloud VPS Domainesia bisa jadi pilihan yang tepat. Dengan VPS, kamu bisa optimize performa aplikasi dan punya kebebasan untuk atur semuanya sesuai kebutuhan.

