Tutorial Reverse Proxy dengan NGINX untuk Aplikasi Node.js
Halo, teman-teman! Kali ini kita bakal bahas tentang cara bikin reverse proxy pake NGINX buat aplikasi Node.js. Buat yang belum tau, reverse proxy itu kayak perantara antara client sama server, yang bisa ngehandle request dari client terus ngeforward ke server yang bener. NGINX sendiri adalah web server yang keren banget buat ngehandle reverse proxy. Yuk, langsung aja kita mulai!
Kenapa Pake Reverse Proxy?
Sebelum kita mulai, mungkin ada yang nanya, “Kenapa sih pake reverse proxy?” Nah, ada beberapa alasan nih:
- Load Balancing: Bisa ngebagi-bagi traffic ke beberapa server biar gak overload.
- SSL Termination: Bisa ngehandle SSL/TLS di NGINX, jadi server aplikasi gak perlu ribet.
- Caching: Bisa nyimpen cache buat ngecepatin response ke client.
- Security: Bisa nambah lapisan keamanan dengan ngefilter request sebelum sampe ke server aplikasi.
Persiapan
Pertama-tama, pastiin dulu kalian udah punya:
- Server yang udah terinstall NGINX.
- Aplikasi Node.js yang udah jalan di port tertentu (misalnya port 3000).
Kalo belum punya, bisa install dulu NGINX pake perintah berikut (buat Ubuntu/Debian):
sudo apt update
sudo apt install nginx
Terus, pastiin juga aplikasi Node.js kalian udah jalan. Misalnya, aplikasi kalian jalan di http://localhost:3000
.
Konfigurasi NGINX
Sekarang, kita bakal bikin konfigurasi NGINX buat ngeforward request ke aplikasi Node.js. Ikutin langkah-langkah berikut ya:
Buat File Konfigurasi
Buka terminal, terus buat file konfigurasi baru di direktori
/etc/nginx/sites-available/
. Misalnya, kita namainnodeapp
.sudo nano /etc/nginx/sites-available/nodeapp
Isi File Konfigurasi
Masukin konfigurasi berikut ke dalam file
nodeapp
:server { listen 80; server_name your_domain.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; } }
Ganti
your_domain.com
dengan domain atau IP server kalian. Kalo aplikasi Node.js kalian jalan di port selain 3000, ganti jugaproxy_pass
sesuai port yang dipake.Aktifkan Konfigurasi
Setelah itu, kita perlu ngebuat symlink ke direktori
/etc/nginx/sites-enabled/
biar NGINX bisa baca konfigurasi kita.sudo ln -s /etc/nginx/sites-available/nodeapp /etc/nginx/sites-enabled/
Test Konfigurasi
Sebelum restart NGINX, kita test dulu konfigurasinya bener atau enggak pake perintah:
sudo nginx -t
Kalo keluar pesan
nginx: configuration file /etc/nginx/nginx.conf test is successful
, berarti konfigurasinya bener.Restart NGINX
Terakhir, restart NGINX biar konfigurasi baru kita keapply.
sudo systemctl restart nginx
Testing
Sekarang, coba akses domain atau IP server kalian di browser. Kalo semuanya bener, kalian bakal liat aplikasi Node.js kalian muncul. Kalo masih ada masalah, coba cek log NGINX di /var/log/nginx/error.log
buat ngecek apa yang salah.
Tambahan: SSL/TLS
Kalo kalian pengen nambahin SSL/TLS biar lebih aman, kalian bisa pake Let’s Encrypt. Caranya gampang banget:
Install Certbot:
sudo apt install certbot python3-certbot-nginx
Dapetin sertifikat SSL:
sudo certbot --nginx -d your_domain.com
Ganti
your_domain.com
dengan domain kalian. Ikutin aja instruksi yang muncul di terminal.
Setelah itu, Certbot bakal otomatis ngeupdate konfigurasi NGINX kalian buat ngehandle HTTPS. Keren kan?
Penutup
Nah, itu dia tutorial singkat tentang cara bikin reverse proxy pake NGINX buat aplikasi Node.js. Dengan NGINX, kita bisa ngehandle banyak hal kayak load balancing, SSL termination, dan caching dengan gampang. Semoga tutorial ini bermanfaat buat kalian. Kalo ada pertanyaan atau ada yang kurang jelas, tinggal komen aja di bawah. Happy coding!