Lewati ke isi

Server & Infrastruktur

Apa Itu Reverse Proxy dan Kenapa Server Butuh Itu?

Reverse proxy meneruskan semua request ke aplikasi yang tepat. Pahami fungsinya untuk HTTPS, cache, batas akses, dan bedanya dengan load balancer.

Terbit 5 menit baca

Jawaban singkat

Reverse proxy adalah server perantara di depan aplikasi yang menerima semua request dari internet lalu meneruskannya ke aplikasi yang tepat. Dengannya banyak aplikasi bisa berbagi satu IP, HTTPS dipasang di satu tempat, dan server aplikasi tidak terekspos langsung.

Daftar isi
  1. Cara kerjanya dalam satu perjalanan request
  2. Pekerjaan yang biasa diambil alih reverse proxy
  3. Bedanya dengan forward proxy dan load balancer
  4. Pilihan perangkat lunak yang umum
  5. Batas yang perlu disadari

Bayangkan kamu baru menyewa satu VPS. Website perusahaan sudah berjalan di sana, lalu tim ingin menambah n8n untuk otomasi dan dashboard laporan. Ketiganya aplikasi berbeda, masing-masing mendengarkan di port sendiri, tapi kamu ingin semuanya dibuka lewat alamat yang rapi seperti otomasi.namabisnis.com, lengkap dengan gembok HTTPS. Bagian yang membuat ini mungkin disebut reverse proxy.

Reverse proxy adalah server perantara yang berdiri di depan aplikasi. Semua request dari internet masuk ke sana lebih dulu, lalu diteruskan ke aplikasi yang tepat di belakangnya. Pengunjung hanya berbicara dengan reverse proxy, dan tidak pernah terhubung langsung ke aplikasi.

Cara kerjanya dalam satu perjalanan request

Saat seseorang membuka otomasi.namabisnis.com, DNS mengarahkan browser ke IP server. Request tiba di port 443, tempat reverse proxy mendengarkan. Reverse proxy membuka enkripsi HTTPS, membaca nama domain yang diminta dari header request, lalu mencocokkannya dengan aturan yang kamu tulis: domain ini diteruskan ke aplikasi di port 5678, domain itu ke port 3000.

Aplikasi memproses request dan mengirim jawaban kembali ke reverse proxy, yang lalu meneruskannya ke browser. Dari sisi pengunjung, prosesnya tidak terlihat. Yang mereka lihat hanya satu alamat dengan HTTPS yang valid.

Karena semua lalu lintas lewat satu titik, reverse proxy menjadi tempat alami untuk menaruh berbagai pekerjaan yang tidak perlu diurus tiap aplikasi.

Pekerjaan yang biasa diambil alih reverse proxy

Routing banyak aplikasi di belakang satu IP. Ini fungsi yang paling sering dibutuhkan. Routing bisa berdasarkan nama domain, atau berdasarkan path, misalnya namabisnis.com/api ke satu aplikasi dan sisanya ke website.

TLS termination. Sertifikat HTTPS cukup dipasang dan diperpanjang di reverse proxy, sementara aplikasi di belakangnya berbicara HTTP biasa di jaringan internal. Beberapa reverse proxy bisa mengurus penerbitan dan perpanjangan sertifikat otomatis lewat protokol ACME, sehingga kamu tidak perlu mengingat tanggal kedaluwarsa.

Cache. Konten yang sama untuk banyak pengunjung, seperti gambar, CSS, atau halaman yang jarang berubah, bisa disimpan sementara oleh reverse proxy. Request berikutnya dijawab langsung tanpa membebani aplikasi.

Kompresi. Respons bisa dikompres sebelum dikirim ke browser, sehingga ukuran transfer lebih kecil.

Rate limiting. Reverse proxy bisa membatasi berapa banyak request yang diterima dari satu alamat IP dalam rentang waktu tertentu. Ini berguna untuk meredam percobaan tebak password di halaman login atau bot yang terlalu agresif.

Menyembunyikan backend. Aplikasi tidak perlu membuka port ke internet. Yang terbuka hanya port 80 dan 443 milik reverse proxy, sehingga permukaan serangan lebih kecil. Header tambahan seperti pengaturan keamanan browser juga bisa ditambahkan di satu tempat.

Satu hal yang perlu diperhatikan: karena request datang dari reverse proxy, aplikasi di belakang akan melihat IP reverse proxy, bukan IP pengunjung asli. Reverse proxy biasanya mengirim IP asli lewat header seperti X-Forwarded-For, dan aplikasi perlu diatur agar mempercayai header itu hanya dari reverse proxy.

Bedanya dengan forward proxy dan load balancer

Tiga istilah ini sering tertukar karena sama-sama berada di tengah jalur lalu lintas. Perbedaannya terletak pada siapa yang diwakili dan apa tujuannya.

AspekForward proxyReverse proxyLoad balancer
Mewakili siapaKlien atau penggunaServer atau aplikasiSekumpulan server yang sama
PosisiDi sisi pengguna, misalnya jaringan kantorDi depan serverDi depan beberapa server
Tujuan utamaMenyaring atau menyamarkan akses keluarRouting, HTTPS, cache, perlindungan backendMembagi beban dan menjaga ketersediaan
Yang mengaturAdmin jaringan penggunaPemilik serverPemilik server
Contoh pemakaianProxy internet kantor yang memblokir situs tertentuSatu VPS dengan banyak aplikasiWebsite dengan beberapa server aplikasi

Forward proxy bekerja untuk pengguna: perusahaan memasangnya agar akses internet karyawan lewat satu pintu yang bisa disaring atau dicatat. Reverse proxy bekerja untuk server. Load balancer sebenarnya adalah reverse proxy dengan tugas khusus, yaitu membagi request ke beberapa server yang menjalankan aplikasi yang sama dan berhenti mengirim ke server yang sedang bermasalah. Banyak perangkat lunak reverse proxy bisa sekaligus menjadi load balancer. Kapan kemampuan itu dibutuhkan dibahas di apa itu load balancer.

Pilihan perangkat lunak yang umum

Nginx adalah salah satu yang paling banyak dipakai, baik sebagai web server maupun reverse proxy. Konfigurasinya fleksibel dan dokumentasinya luas. Perbandingannya dengan web server lain ada di Nginx vs Apache vs LiteSpeed.

Caddy dikenal karena HTTPS otomatis secara bawaan dan konfigurasi yang ringkas, cocok untuk yang ingin cepat jalan. Traefik banyak dipakai di lingkungan container karena bisa membaca label container dan mengatur routing sendiri saat container baru dinyalakan. HAProxy kuat untuk load balancing dan lalu lintas tinggi. Untuk tim kecil, pilihan terbaik biasanya yang paling dipahami timmu sendiri.

Reverse proxy juga bisa berupa layanan di luar server, misalnya CDN yang berdiri di antara pengunjung dan servermu. Pola ini menambah cache di banyak lokasi dan lapisan perlindungan, tapi prinsip dasarnya sama.

Batas yang perlu disadari

Reverse proxy bukan pengganti keamanan aplikasi. Rate limiting dan penyembunyian backend mengurangi risiko, tapi celah di aplikasi tetap bisa dieksploitasi lewat request yang terlihat sah. Untuk penyaringan serangan aplikasi web, ada lapisan khusus yang disebut WAF, yang penjelasannya ada di apa itu WAF.

Reverse proxy juga menjadi satu titik yang dilewati semua lalu lintas. Kalau ia mati atau salah konfigurasi, semua aplikasi di belakangnya ikut tidak bisa diakses. Uji konfigurasi sebelum memuat ulang, misalnya dengan nginx -t pada Nginx, dan simpan konfigurasi di Git agar perubahan mudah dilacak dan dikembalikan.

Terakhir, cache perlu diatur hati-hati. Halaman yang berisi data pribadi, seperti keranjang belanja atau halaman akun, tidak boleh di-cache untuk semua orang.

Singkatnya, reverse proxy adalah pintu depan server: satu tempat untuk menerima semua request, memasang HTTPS, dan meneruskan lalu lintas ke aplikasi yang tepat. Hampir setiap server yang menjalankan lebih dari satu aplikasi web akan terbantu olehnya. Kalau kamu sedang merencanakan server untuk beberapa aplikasi sekaligus, gambaran besarnya ada di panduan self-hosting untuk bisnis.

Baca juga