Panduan Linux

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:

  1. Load Balancing: Bisa ngebagi-bagi traffic ke beberapa server biar gak overload.
  2. SSL Termination: Bisa ngehandle SSL/TLS di NGINX, jadi server aplikasi gak perlu ribet.
  3. Caching: Bisa nyimpen cache buat ngecepatin response ke client.
  4. Security: Bisa nambah lapisan keamanan dengan ngefilter request sebelum sampe ke server aplikasi.

Persiapan

Pertama-tama, pastiin dulu kalian udah punya:

  1. Server yang udah terinstall NGINX.
  2. 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:

  1. Buat File Konfigurasi

    Buka terminal, terus buat file konfigurasi baru di direktori /etc/nginx/sites-available/. Misalnya, kita namain nodeapp.

    sudo nano /etc/nginx/sites-available/nodeapp
    
  2. 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 juga proxy_pass sesuai port yang dipake.

  3. 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/
    
  4. 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.

  5. 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:

  1. Install Certbot:

    sudo apt install certbot python3-certbot-nginx
    
  2. 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!

#Nginx #Reserve Proxy #Tutorial