Prinsip Dasar Nginx Reverse Proxy
Nginx berfungsi sebagai reverse proxy dengan menerima permintaan dari klien (browser) dan meneruskannya ke server aplikasi (backend) yang berjalan di port internal. Konfigurasi ini krusial untuk meningkatkan keamanan, skalabilitas, dan manajemen SSL pada aplikasi seperti WordPress atau n8n yang di-hosting di VPS.
Struktur Konfigurasi Utama
Inti dari konfigurasi reverse proxy terletak pada direktif proxy_pass di dalam blok location. Berikut adalah sintaks dasar yang harus diterapkan pada file konfigurasi Nginx Anda:
server {
listen 80;
server_name domainanda.com;
location / {
proxy_pass http://localhost:3000;
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;
}
}Tabel Parameter Proxy Penting
| Direktif | Fungsi |
|---|---|
| proxy_pass | Menentukan alamat server backend (IP/Port). |
| proxy_set_header Host | Meneruskan header Host asli ke backend. |
| proxy_set_header X-Real-IP | Mengirimkan IP asli klien ke aplikasi. |
| proxy_set_header X-Forwarded-Proto | Memberitahu backend apakah koneksi via HTTP atau HTTPS. |
Implementasi pada Aplikasi Spesifik
Dalam ekosistem server modern, Nginx sering digunakan untuk membungkus aplikasi berbasis Docker seperti n8n atau CMS seperti WordPress. Untuk n8n yang berjalan di Docker, pastikan port internal (biasanya 5678) dipetakan dengan benar ke Nginx. Pada WordPress, Nginx berperan sebagai frontend yang menangani request PHP-FPM atau meneruskan ke Apache jika menggunakan konfigurasi hybrid.
Langkah Troubleshooting Lapangan
- Cek Sintaks: Jalankan
nginx -tsebelum melakukan reload untuk memastikan tidak ada kesalahan penulisan. - Izin Akses: Pastikan user
www-datamemiliki akses ke direktori aplikasi. - Firewall: Pastikan port 80 dan 443 terbuka di firewall VPS (UFW/Iptables).
- Log Error: Periksa
/var/log/nginx/error.logjika terjadi 502 Bad Gateway, yang biasanya menandakan backend tidak merespons.
Penggunaan reverse proxy memungkinkan Anda menjalankan banyak layanan dalam satu VPS dengan membedakan trafik berdasarkan domain atau sub-domain, yang sangat efisien untuk manajemen server pribadi.