Apa Itu Reverse Proxy? Meja Resepsionis yang Berdiri di Depan Server-mu

Reverse proxy adalah server yang berdiri di depan server-server lainnya, menerima setiap permintaan lebih dulu lalu menentukan harus diapakan. Pelajari reverse proxy itu apa, bedanya dengan forward proxy, tugas-tugas yang dia tangani diam-diam, dan kenapa hampir semua website serius berjalan di.

Diterbitkan 30 September 20268 menit bacaOleh ACY Partner Indonesia
Reverse proxy duduk di antara client dan server backend, mengarahkan permintaan
300 × 250Slot Iklan TersediaPasang iklan Anda di sini

Bayangkan sebuah gedung kantor yang sibuk. Kamu tidak berkeliaran di lorong-lorong mencari orang yang kamu tuju — kamu menghampiri meja resepsionis, menyebut siapa yang kamu cari, lalu resepsionisnya mengarahkanmu ke ruangan yang benar, menitipkan pesan, atau dengan sopan menolakmu masuk. Tamu tidak pernah lihat denah berantakan di balik meja itu, dan justru di situlah letak gunanya. Reverse proxy adalah meja resepsionis semacam itu, tapi untuk server-server-mu.

Ini salah satu komponen infrastruktur yang diam-diam nongkrong di tengah hampir setiap website sungguhan, mengerjakan belasan tugas kecil sekaligus. Begitu kamu paham dia itu apa dan kenapa ada di situ, banyak hal yang tadinya membingungkan soal cara membangun situs produksi — banyak server tapi satu domain, HTTPS di mana-mana, dan sejenisnya — tiba-tiba jadi masuk akal.

Reverse proxy itu sebenarnya apa

Reverse proxy adalah server yang duduk di antara client (browser, aplikasi, apa pun yang mengirim permintaan) dan satu atau lebih server backend yang sebenarnya mengerjakan tugasnya. Setiap permintaan yang masuk menyentuh reverse proxy lebih dulu. Lalu proxy menentukan harus diapakan: meneruskannya ke sebuah backend, menjawabnya sendiri dari cache, menolaknya, atau melemparnya ke tempat lain sama sekali. Saat backend membalas, jawabannya kembali melewati proxy dan keluar menuju client.

Dilihat dari luar, sepertinya client sedang ngobrol dengan satu server saja. Padahal, dia sedang ngobrol dengan proxy, dan proxy-lah yang diam-diam mengobrol sungguhan mewakilinya. Client sama sekali tidak perlu tahu ada berapa server di belakang sana, namanya apa, atau yang mana akhirnya menangani permintaan itu.

Kata “reverse” di sini punya peran besar, dan ini sering bikin orang bingung, jadi mari kita kunci dulu maknanya. Forward proxy berdiri di depan client dan mewakili mereka ke internet yang lebih luas — bayangkan proxy perusahaan yang dilewati semua browser karyawan. Reverse proxy berdiri di depan server dan mewakili mereka ke client. Ide proxy-nya sama, cuma berdiri di sisi obrolan yang berlawanan.

Proxy = sesuatu yang bertindak atas nama pihak lain

Kata “proxy” sebenarnya cuma berarti pengganti — sesuatu yang bertindak untuk orang lain. Satu-satunya pertanyaan adalah siapa yang dia wakili. Forward proxy mewakili client (menyembunyikan mereka dari server yang mereka tuju). Reverse proxy mewakili server (menyembunyikan mereka dari client yang menghubunginya). Kalau kamu ingat sisi mana yang sedang dia lindungi, kamu tidak bakal ketukar lagi membedakan keduanya.

Bagaimana sebuah permintaan mengalir melaluinya

Mari kita telusuri satu permintaan, langkah demi langkah, karena alurnya itulah inti dari semuanya.

  1. Sebuah client mengetik acypartner.example di browser lalu mengirim permintaan HTTPS. DNS mengarahkan domain itu ke IP publik milik reverse proxy, jadi permintaannya mendarat di proxy — bukan langsung ke backend mana pun.
  2. Reverse proxy menerima permintaan tersebut. Dia melihat hal-hal seperti path yang diminta, host header, dan mungkin cookie pengguna, lalu memutuskan ini harus diarahkan ke mana.
  3. Dia meneruskan permintaan ke server backend yang tepat lewat jaringan internal — misalnya, app server yang menangani /api, atau server berkas statis yang menangani gambar.
  4. Backend mengerjakan tugasnya lalu mengirim jawaban balik ke proxy.
  5. Proxy meneruskan jawaban itu kembali ke client, sering kali sambil menambah atau merapikan beberapa hal di tengah jalan (kompresi, header, dan sebagainya).
   CLIENT                 REVERSE PROXY                 BACKEND
 (browser kamu)         (meja resepsionis)        (pekerja sungguhan)
      │                        │                        │
      │  1. GET /api/users     │                        │
      │ ─────────────────────► │   2. pilih backend     │
      │                        │ ─────────────────────► │  app server
      │                        │                        │  kerjakan tugas
      │                        │ ◄───────────────────── │
      │  3. jawabannya         │                        │
      │ ◄───────────────────── │                        │
      │                        │                        │
   lihat SATU server                            sebenarnya BANYAK

Perhatikan ketimpangannya: client melihat satu alamat dan satu server. Di balik proxy bisa jadi ada lima app server, satu mesin terpisah untuk berkas statis, dan satu cache — tapi semua itu tidak bocor keluar. Proxy adalah wajah publik yang tunggal dan stabil dari sebuah sistem yang di bagian dalamnya boleh seberantakan dan seberubah-ubah apa pun sesuai kebutuhan.

Tugas-tugas yang diam-diam ditangani reverse proxy

Reverse proxy jarang dipasang cuma karena satu alasan. Dia cenderung menumpuk tanggung jawab karena posisinya adalah titik sempit yang sempurna — setiap permintaan melewatinya, jadi dia jadi tempat alami untuk melakukan apa pun yang seharusnya berlaku untuk semua lalu lintas. Berikut tugas-tugas yang paling sering dia pikul.

Mengarahkan permintaan ke tempat yang benar

Inilah tugas intinya. Berdasarkan path URL, domain, atau host header, proxy mengirim setiap permintaan ke backend yang seharusnya menanganinya. Permintaan ke /api/* masuk ke application server; permintaan ke /images/* masuk ke server berkas statis; permintaan ke blog.acypartner.example dan shop.acypartner.example bisa jadi diarahkan ke sistem yang sama sekali berbeda — semuanya di belakang satu proxy, semuanya terlihat seperti satu situs di mata pengunjung.

Terminasi TLS / HTTPS

Mengenkripsi dan mendekripsi lalu lintas HTTPS memakan CPU dan menuntut pengelolaan sertifikat. Daripada mengajari setiap backend melakukannya, kamu biarkan reverse proxy yang menangani koneksi terenkripsi dengan client, mendekripsinya sekali, lalu berbicara ke backend lewat koneksi internal biasa (tapi tetap privat). Ini disebut terminasi TLS, dan artinya kamu mengelola sertifikat di satu tempat saja, bukan di setiap server. Kalau kamu masih samar soal lapisan enkripsi ini sebenarnya apa, tulisan kami tentang apa itu web server meletakkan fondasi yang dibangun di atasnya ini.

Load balancing

Saat kamu punya beberapa server backend yang identik, proxy bisa menyebar permintaan yang masuk ke semuanya supaya tidak ada satu mesin pun yang kewalahan. Ini disebut load balancing, dan reverse proxy adalah tempat paling alami untuk melakukannya — dia memang sudah jadi titik yang dilewati setiap permintaan. (Load balancing cukup besar untuk dibahas sendiri, dan justru itulah hal berikutnya yang layak kamu baca setelah ini.)

Caching

Kalau banyak client meminta hal yang sama — sebuah gambar populer, halaman yang jarang berubah — proxy bisa menyimpan salinannya dan menjawab langsung tanpa repot-repot menyentuh backend sama sekali. Itu membuat jawaban lebih cepat dan mengurangi beban server sungguhanmu. Garis antara konten yang aman di-cache oleh proxy dan konten yang harus selalu diambil segar sangat dekat dengan beda antara konten statis dan dinamis, yang sebaiknya kamu pahami dulu sebelum menyetel caching.

Kompresi, header, dan beres-beres

Karena setiap jawaban mengalir melaluinya, proxy adalah tempat yang praktis untuk mengompres jawaban berupa teks, menambah header keamanan, mencabut header internal sensitif yang tidak boleh dilihat client, dan secara umum merapikan apa yang keluar dari pintu — tanpa perlu menyentuh kode aplikasi sama sekali.

Menyembunyikan dan melindungi backend

Backend tidak pernah memamerkan alamat aslinya ke internet. Mereka bisa duduk di jaringan privat, hanya bisa dijangkau oleh proxy, yang secara drastis mengecilkan permukaan serangan. Proxy menjadi satu-satunya pintu publik yang dikeraskan dan diawasi — dan semua yang berharga bersembunyi di belakangnya.

Satu proxy, banyak masalah beres sekaligus

Alasan reverse proxy ada di mana-mana bukan karena satu fitur tertentu — tapi karena satu komponen yang ditempatkan dengan tepat bisa menangani routing, HTTPS, load balancing, caching, dan perlindungan dalam waktu yang bersamaan. Kamu pasang sekali dan beberapa masalah sulit langsung punya rumah yang rapi. Itulah kenapa “taruh reverse proxy di depannya” adalah salah satu saran yang paling sering muncul dalam urusan server.

Forward proxy vs reverse proxy, disandingkan

Dua hal ini terus-menerus ketukar, jadi ada baiknya kita letakkan berdampingan dengan gamblang. Keduanya dibangun dari ide yang sama tapi menghadap ke arah yang berlawanan.

FORWARD PROXY                         REVERSE PROXY
(mewakili client)                     (mewakili server)

 client ─┐                                         ┌─ server
 client ─┼─► [proxy] ─► internet      internet ─► [proxy] ─┼─ server
 client ─┘                                         └─ server

 menyembunyikan SIAPA yang bertanya    menyembunyikan APA yang menjawab
 tinggal dekat pengguna                tinggal dekat server
  • Forward proxy dikonfigurasi oleh client, tahu soal client, lalu menjangkau internet luas mewakili mereka. Perusahaan dan sekolah memakainya untuk menyaring atau memantau lalu lintas keluar; sebagian orang memakainya demi privasi.
  • Reverse proxy dikonfigurasi oleh orang-orang yang menjalankan server, tahu soal backend, lalu menerima lalu lintas dari internet luas mewakili mereka. Website memakainya untuk semua hal yang sudah kita sebut di atas.

Kalau kamu cuma mau ingat satu kalimat: forward proxy melindungi dan mewakili client; reverse proxy melindungi dan mewakili server.

Kenapa hampir semua situs serius berjalan di belakangnya

Begitu sebuah proyek tumbuh melewati satu server kecil, reverse proxy berhenti jadi pilihan opsional dan mulai jadi keharusan yang jelas. Kamu ingin HTTPS ditangani di satu tempat. Kamu ingin menambah app server kedua tanpa mengubah domain atau pengalaman pengunjungmu. Kamu ingin menyajikan gambar dari mesin yang berbeda dari aplikasimu. Kamu ingin satu pintu depan yang bisa kamu pantau, batasi lajunya, dan keraskan keamanannya. Setiap kebutuhan itu mendarat dengan alami pada komponen yang sama.

Dia juga memberimu ruang untuk mengubah bagian dalam tanpa mengganggu bagian luar. Kamu bisa mengganti backend, memindahkan service ke mesin baru, memecah satu server jadi tiga, atau merilis versi baru secara bertahap — dan selama proxy tetap menampilkan alamat yang sama dan stabil ke dunia, pengunjung tidak pernah sadar. Pemisahan antara wajah publik dan mesin di balik layar ini adalah salah satu ide paling berguna di seluruh arsitektur server, dan reverse proxy adalah tempat ide itu hidup. Kalau mekanika permintaan-dan-jawaban di baliknya masih terasa kabur, ulasan kami soal cara kerja web server adalah teman baca yang pas untuk yang satu ini.

Penutup

Ini gambaran utuhnya dalam satu tempat:

  • Reverse proxy adalah server yang duduk di depan server-server backend-mu, menerima setiap permintaan lebih dulu lalu menentukan harus diapakan.
  • Dia membuat banyak server tampak seperti satu di mata dunia luar — client melihat satu alamat yang stabil dan tidak pernah tahu apa yang sebenarnya ada di belakangnya.
  • “Reverse” cuma berarti dia mewakili server, sementara forward proxy mewakili client. Ide sama, sisi berlawanan.
  • Dalam satu komponen yang ditempatkan tepat, dia bisa menangani routing, terminasi TLS/HTTPS, load balancing, caching, kompresi, dan perlindungan backend.
  • Karena dia satu-satunya titik yang dilewati setiap permintaan, dia jadi rumah alami untuk apa pun yang seharusnya berlaku ke semua lalu lintas — itulah kenapa hampir setiap website serius berjalan di belakangnya.

Tugas terpenting di antara semua itu layak dilihat lebih dekat tersendiri, jadi berikutnya kita bakal menyelami load balancing — bagaimana sebuah proxy menyebar lalu lintas ke banyak server supaya sebuah situs tetap bisa melayani ketika satu mesin jadi sibuk, lambat, atau tumbang sama sekali.

Tag:serverweb-serverreverse-proxyjaringanpemula
728 × 90Slot Iklan TersediaPasang iklan Anda di sini

Artikel Terkait

Lihat Semua Artikel

Artikel yang Mungkin Kamu Suka

SSL dan enkripsi at rest — data terlindungi saat berjalan dan saat tersimpan di disk
Server / Keamanan Server

SSL dan Enkripsi at Rest: Melindungi Data Saat Berjalan dan Saat Tersimpan

Enkripsi melindungi data di dua tempat: saat data lewat di jaringan (in transit) dan saat data nganggur di disk (at rest). Pahami bedanya, kenapa kamu butuh keduanya, bagaimana TLS, enkripsi disk, dan pengelolaan kunci sebenarnya saling melengkapi, plus kesalahan praktis yang sering bikin sia-sia.

9 Nov 202612 menit baca
Mengamankan port dan service — menutup pintu di server yang tidak kamu pakai
Server / Keamanan Server

Mengamankan Port dan Service: Menutup Pintu yang Tidak Kamu Pakai

Setiap port yang terbuka di server adalah satu pintu yang bisa dicoba orang lain. Pahami port dan service itu sebenarnya apa, kenapa service yang terekspos jadi risiko terbesarmu, dan kebiasaan sederhana menutup semua yang tidak kamu butuhkan — dijelaskan dari nol.

8 Nov 202610 menit baca
Prinsip least privilege — memberi hanya akses minimum yang dibutuhkan tiap user dan proses
Server / Keamanan Server

Prinsip Least Privilege: Beri Setiap Hal Hanya Akses yang Benar-Benar Dibutuhkan

Least privilege adalah aturan diam-diam di balik hampir semua setup keamanan yang solid: setiap user, proses, dan kunci hanya dapat akses minimum untuk menjalankan tugasnya, tidak lebih.

7 Nov 202612 menit baca
Fail2ban dan dasar intrusi — mengawasi log dan mem-banned otomatis pelaku yang menggedor berulang kali
Server / Keamanan Server

Fail2ban dan Dasar Intrusi: Mem-banned Otomatis Bot yang Terus Menggedor Server-mu

Penyerang tidak berhenti setelah sekali salah tebak — mereka terus menggedor, ribuan kali sehari. Pahami seperti apa sebenarnya percobaan intrusi, apa yang dikerjakan fail2ban, bagaimana ia mengawasi log dan mem-banned pelaku otomatis, dan cara menyetelnya dengan masuk akal tanpa mengunci dirimu.

6 Nov 202612 menit baca
Menjaga software tetap update — menutup lubang keamanan yang sudah diketahui sebelum penyerang memakainya
Server / Keamanan Server

Menjaga Software Tetap Update: Kebiasaan Membosankan yang Mencegah Sebagian Besar Pembobolan Server

Kebanyakan server tidak dibobol lewat serangan baru yang canggih — tapi lewat lubang lama yang sudah diketahui, yang sebenarnya cukup ditutup dengan update. Pelajari kenapa update itu penting, apa saja yang harus di-update, cara melakukannya dengan aman tanpa merusak apa pun, dan cara.

5 Nov 20269 menit baca
Konfigurasi firewall — aturan default-deny yang hanya membuka port yang kamu butuhkan
Server / Keamanan Server

Konfigurasi Firewall: Menyusun Aturan Default-Deny Tanpa Mengunci Diri Sendiri

Tahu apa itu firewall dan benar-benar mengonfigurasinya dengan rapi adalah dua keterampilan berbeda. Pelajari cara menyusun aturan default-deny, mengurutkan aturan dengan benar, membuka akses sendiri lebih dulu, menangani IPv6 dan security group cloud, lalu mengujinya sebelum dipakai — panduan.

4 Nov 202614 menit baca