Web Server Menengah

Nginx Reverse Proxy dari Nol

Cara mengonfigurasi Nginx sebagai reverse proxy untuk aplikasi web dan API.

Reverse proxy adalah server yang menerima permintaan dari klien, lalu meneruskannya ke server internal (bisa aplikasi Node.js, Python, atau layanan lain). Nginx sangat populer untuk peran ini karena cepat dan ringan.

Instalasi Nginx

sudo apt update
sudo apt install nginx -y
sudo systemctl enable --now nginx

Konfigurasi Dasar Reverse Proxy

Contoh: aplikasi Node.js berjalan di localhost:3000, dan kita ingin mengaksesnya lewat domain app.contoh.id.

server {
    listen 80;
    server_name app.contoh.id;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  1. Simpan file di /etc/nginx/sites-available/app.contoh.id
  2. Aktifkan: sudo ln -s /etc/nginx/sites-available/app.contoh.id /etc/nginx/sites-enabled/
  3. Uji konfigurasi: sudo nginx -t
  4. Muat ulang: sudo systemctl reload nginx

Mengapa Perlu Header Ini?

  • Host — agar aplikasi tahu domain yang diminta.
  • X-Real-IP / X-Forwarded-For — agar aplikasi melihat IP asli pengunjung.
  • X-Forwarded-Proto — memberi tahu aplikasi apakah koneksi HTTP atau HTTPS.

Troubleshooting Umum

  • 502 Bad Gateway — aplikasi backend tidak berjalan atau port salah.
  • 404 — pastikan root dan try_files tidak mengganggu lokasi proxy.
  • Selalu cek log: sudo tail -f /var/log/nginx/error.log