
Bayangin Kamu Buka Toko Tanpa Tembok...
Bayangin Budi bikin Server Express.js. Dia mengatur kodenya agar berjalan di app.listen(80) supaya orang yang ngetik www.toko.com (Port 80) bisa langsung mengakses kodenya secara langsung tanpa perlu embel-embel port di URL.
Tapi Siti sang *DevOps* memarahi Budi: "Bud! Kamu gila ya membiarkan mesin Node.js langsung bersentuhan dengan angin luar internet? Node.js itu rentan! Kalau ada Hacker yang mengirim file aneh, aplikasimu bisa langsung down!"
Masalahnya: Node.js Bukanlah Jagoan Jaringan
Node.js (dan Express.js) sangat sakti untuk memproses logika (mencari data, kalkulasi keranjang belanja). Tapi, Node.js SANGAT BURUK jika disuruh berurusan dengan lalu lintas jaringan murni, seperti melayani file gambar static, menahan *Spam* koneksi kosong, atau mengurus enkripsi sertifikat SSL/HTTPS.
Nah, Di Sinilah 'Nginx Reverse Proxy' Masuk!
Arsitektur server yang benar adalah menaruh Node.js di kamar belakang (misal di kamar Port 3000 yang ditutup rapat). Lalu, kita pasang sebuah aplikasi Satpam Gerbang Depan di Port 80 (HTTP) dan 443 (HTTPS). Satpam legendaris itu bernama Nginx (dibaca: Engine-X).
Pola kerja Reverse Proxy:
- Pengunjung mengetik
www.toko.com. Permintaan ini masuk dan ditangkap lebih dulu oleh Nginx. - Nginx mengecek: "Oh, orang ini mau buka gambar Logo.jpg. Gak perlu ganggu Node.js, gue sendiri yang bakal ngasih gambarnya dengan kecepatan cahaya!"
- Pengunjung lain datang: "Saya mau Checkout keranjang!" Nginx mengecek: "Oke, ini urusan hitung-hitungan. Tolong tunggu sebentar, surat ini saya teruskan (Forward) ke kamar belakang ke Tuan Node.js di Port 3000."
- Node.js membalas ke Nginx, lalu Nginx memberikannya ke pengunjung.
Intinya: Reverse Proxy membebaskan Node.js dari tugas kotor jaringan, sehingga Node.js bisa fokus 100% pada logika kodinganmu.
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates