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;
}
}
- Simpan file di
/etc/nginx/sites-available/app.contoh.id - Aktifkan:
sudo ln -s /etc/nginx/sites-available/app.contoh.id /etc/nginx/sites-enabled/ - Uji konfigurasi:
sudo nginx -t - 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
rootdantry_filestidak mengganggu lokasi proxy. - Selalu cek log:
sudo tail -f /var/log/nginx/error.log