LarhTech – Sebelumnya kita telah membahas Cara Deploy Aplikasi Nodejs di VPS Ubuntu Dengan PM2, Setelah Anda berhasil menjalankan aplikasi Node.js di background menggunakan PM2, Anda mungkin menyadari satu masalah: aplikasi tersebut hanya bisa diakses melalui port spesifik, misalnya http://ip-vps-anda:3000. Tentu saja, ini sangat tidak profesional jika harus diberikan kepada pengguna atau klien. Pengguna internet terbiasa mengakses website hanya dengan mengetikkan nama domain.
Di sinilah peran Reverse Proxy dibutuhkan. Kita akan menggunakan Nginx untuk bertindak sebagai “pelayan depan” (Front-end). Nginx akan menerima semua trafik yang masuk ke nama domain Anda melalui port standar (80 untuk HTTP atau 443 untuk HTTPS), lalu secara diam-diam meneruskan trafik tersebut ke “dapur” aplikasi Node.js Anda yang berjalan di port 3000.
Dalam tutorial ini, kita akan membahas langkah demi langkah cara mengonfigurasi Nginx sebagai Reverse Proxy untuk aplikasi Node.js di VPS Ubuntu.
Persyaratan Awal
- Sebelum memulai konfigurasi, pastikan Anda telah memenuhi syarat berikut:
- Memiliki VPS Ubuntu dengan Nginx yang sudah terinstal.
- Memiliki domain aktif yang sudah di-pointing ke IP VPS Anda (misalnya: app.domainanda.com).
- Aplikasi Node.js sudah berjalan di localhost (misalnya di port 3000) menggunakan manajer proses seperti PM2.
Langkah 1: Pastikan Aplikasi Node.js Berjalan Lokal
Sebelum menyuruh Nginx meneruskan trafik, kita harus yakin aplikasinya memang hidup. Buka terminal SSH Anda dan jalankan perintah curl untuk mengecek localhost:
curl http://localhost:3000
(Catatan: Sesuaikan angka 3000 dengan port aplikasi Anda)
Jika terminal mengembalikan respons berupa kode HTML atau teks dari aplikasi Anda, berarti Node.js sudah siap menerima trafik dari Nginx.
Langkah 2: Membuat Server Block (Virtual Host) Nginx
Sekarang, kita buat file konfigurasi Nginx khusus untuk domain aplikasi Anda. Buka terminal dan buat file baru menggunakan editor teks Nano:
sudo nano /etc/nginx/sites-available/app.domainanda.com
Masukkan baris konfigurasi berikut. Ini adalah template standar Reverse Proxy yang direkomendasikan untuk Node.js:
server {
listen 80;
server_name app.domainanda.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;
}
}
Penjelasan Singkat Kode:
- listen 80; dan server_name memberi tahu Nginx untuk mendengarkan trafik HTTP yang masuk ke domain tersebut.
- proxy_pass http://localhost:3000; adalah nyawa utama dari konfigurasi ini. Baris ini yang bertugas melempar pengunjung ke aplikasi Node.js.
- Baris proxy_set_header lainnya berguna agar aplikasi Node.js tetap bisa mendeteksi IP asli pengunjung dan mendukung fitur WebSockets secara real-time.
Simpan konfigurasi dengan menekan Ctrl+X, ketik Y, lalu tekan Enter.

Langkah 3: Mengaktifkan Konfigurasi dan Restart Nginx
Setelah file dibuat, kita harus mengaktifkannya dengan membuat symlink (tautan) ke direktori sites-enabled:
sudo ln -s /etc/nginx/sites-available/app.domainanda.com /etc/nginx/sites-enabled/
Selanjutnya, uji konfigurasi Nginx untuk memastikan tidak ada salah ketik (typo) atau error sintaks:
sudo nginx -t
Jika terminal menampilkan pesan “syntax is ok” dan “test is successful“, Anda bisa memuat ulang Nginx untuk menerapkan perubahan:
sudo systemctl restart nginx

Kesimpulan
Selamat! Anda baru saja berhasil mengatur Nginx sebagai Reverse Proxy. Sekarang, cobalah buka browser dan ketikkan nama domain Anda (app.domainanda.com). Anda akan langsung melihat aplikasi Node.js Anda tampil tanpa perlu lagi mengetikkan angka port di belakangnya.
Langkah ideal selanjutnya adalah mengamankan jalur Nginx ini dengan sertifikat SSL (HTTPS) agar data yang dikirimkan oleh pengguna aplikasi Anda terenkripsi dengan aman. Caranya sama dengan seperti artikel ini “Cara Hubungkan Domain Ke Cloudflare dengan SSL Gratis“.
Bagaimana Mudah Bukan? Sekian untuk artikel kali ini, Terimas kasih!



