Apa itu Proxy Terbalik, dan Bagaimana Cara Kerjanya?
Diterbitkan: 2022-08-09
Proxy terbalik adalah alat yang berguna dalam perangkat administrator sistem apa pun. Mereka memiliki banyak kegunaan, termasuk penyeimbangan beban, perlindungan dari serangan DDOS
Apa itu Proxy Terbalik?
Proxy biasa, disebut Forward Proxy, adalah server tempat koneksi pengguna dirutekan. Dalam banyak hal, ini seperti VPN sederhana, yang berada di depan koneksi internet Anda. VPN adalah contoh umum dari ini, tetapi mereka juga menyertakan hal-hal seperti firewall sekolah, yang dapat memblokir akses ke konten tertentu.
Proxy terbalik bekerja sedikit berbeda. Ini adalah alat backend yang digunakan oleh administrator sistem. Alih-alih terhubung langsung ke situs web yang menyajikan konten, proxy terbalik seperti NGINX dapat berada di tengah. Ketika menerima permintaan dari pengguna, itu akan mengirim ke depan, atau "proksi," permintaan itu ke server akhir. Server ini disebut "server asal" karena itulah yang sebenarnya akan menanggapi permintaan.
Sementara pengguna mungkin akan tahu jika mereka dirutekan melalui proxy maju seperti VPN atau firewall, proxy terbalik adalah alat backend. Sejauh yang diketahui pengguna, mereka hanya terhubung ke situs web. Segala sesuatu di balik proxy terbalik disembunyikan, dan ini juga memiliki banyak manfaat.
Efek ini juga terjadi secara terbalik. Server asal tidak memiliki koneksi langsung ke pengguna dan hanya akan melihat banyak permintaan yang datang dari IP proxy terbalik. Ini bisa menjadi masalah, tetapi sebagian besar layanan proxy seperti NGINX akan menambahkan header seperti X-Forwarded-For
ke permintaan. Header ini akan memberi tahu server asal tentang alamat IP klien yang sebenarnya.
Untuk Apa Reverse Proxy Digunakan?
Proxy terbalik cukup sederhana dalam konsep tetapi terbukti menjadi alat yang sangat berguna dengan banyak kasus penggunaan yang tidak terduga.
Penyeimbang beban
Salah satu manfaat utama dari proxy terbalik adalah betapa ringannya mereka. Karena mereka hanya meneruskan permintaan, mereka tidak perlu melakukan banyak pemrosesan, terutama dalam situasi di mana database perlu ditanyakan.
Ini berarti bottleneck sering kali adalah server asal, tetapi dengan proxy terbalik di depannya, Anda dapat dengan mudah memiliki beberapa server asal. Misalnya, proxy dapat mengirim 50% permintaan ke satu server, dan 50% ke server lain, menggandakan kapasitas situs web. Layanan seperti HAProxy dirancang untuk menangani ini dengan baik.
Ini adalah kasus penggunaan yang sangat umum, dan sebagian besar penyedia cloud seperti Amazon Web Services (AWS) akan menawarkan penyeimbangan beban sebagai layanan, sehingga Anda tidak perlu repot mengaturnya sendiri. Dengan otomatisasi cloud, Anda bahkan dapat secara otomatis meningkatkan jumlah server asal sebagai respons terhadap lalu lintas, sebuah fitur yang disebut “penskalaan otomatis.”
Penyeimbang beban seperti Elastic Load Balancer dari AWS dapat diatur untuk secara otomatis mengonfigurasi ulang sendiri ketika server asal Anda naik dan turun, semua dimungkinkan oleh proxy terbalik di bawah tenda.
TERKAIT: Cara Memulai Dengan Elastic Load Balancer AWS

Caching
Karena proxy terbalik seringkali lebih cepat merespons daripada server asal, teknik yang disebut caching biasanya digunakan untuk mempercepat permintaan pada rute umum. Caching adalah ketika data halaman disimpan di proxy terbalik, dan hanya diminta dari server asal setiap beberapa detik/menit. Ini mengurangi ketegangan pada server asal secara dramatis.
Misalnya, artikel yang sedang Anda baca ini disajikan oleh WordPress, yang perlu berbicara dengan database SQL untuk mengambil konten artikel dan metadata. Melakukan itu untuk setiap penyegaran halaman adalah pemborosan mengingat halaman tidak benar-benar berubah. Jadi, rute ini dapat di-cache, dan proxy terbalik hanya akan mengirim kembali respons terakhir ke pengguna berikutnya, daripada mengganggu WordPress lagi.
Jaringan khusus proxy terbalik yang menyimpan konten Anda di cache disebut Jaringan Pengiriman Konten, atau CDN. CDN seperti CloudFlare atau Fastly sangat umum digunakan oleh situs web besar untuk mempercepat pengiriman global. Server di seluruh dunia yang menyimpan konten disebut “edge node”, dan memiliki banyak server dapat membuat situs web Anda sangat cepat.
Perlindungan & Privasi Jaringan
Karena pengguna tidak tahu apa yang ada di balik proxy terbalik, mereka tidak akan dapat dengan mudah menyerang server asal Anda secara langsung. Faktanya, proxy terbalik biasanya digunakan dengan server asal di subnet pribadi, yang berarti mereka tidak memiliki koneksi masuk ke internet luar sama sekali.
Ini membuat konfigurasi jaringan Anda tetap pribadi, dan sementara keamanan melalui ketidakjelasan tidak pernah mudah, itu lebih baik daripada membiarkannya terbuka untuk diserang.
Kepercayaan yang melekat ini juga dapat berguna saat merencanakan jaringan Anda. Misalnya, server API yang berbicara dengan database mirip dengan proxy terbalik. Basis data tahu bahwa ia dapat mempercayai server API di subnet pribadi, dan server API bertindak sebagai firewall untuk basis data, hanya mengizinkan koneksi yang benar melaluinya.
Frontend yang Dapat Dikonfigurasi
Salah satu manfaat dari proxy terbalik seperti NGINX adalah betapa sangat dapat dikonfigurasinya mereka. Seringkali, mereka berguna untuk ada di depan layanan lain hanya untuk mengonfigurasi cara pengguna mengakses layanan tersebut.
Misalnya, NGINX mampu menilai permintaan batas ke rute tertentu, yang dapat mencegah pelaku membuat ribuan permintaan ke server asal dari satu IP. Ini tidak menghentikan serangan DDOS, tetapi bagus untuk dimiliki.
NGINX juga dapat meneruskan lalu lintas dari beberapa nama domain dengan blok “server” yang dapat dikonfigurasi. Misalnya, itu bisa mengirim permintaan ke example.com
ke server asal Anda, tetapi mengirim api.example.com
ke server API khusus Anda, atau files.example.com
ke penyimpanan file Anda, dan seterusnya. Setiap server dapat memiliki konfigurasi dan aturannya sendiri.
NGINX juga dapat menambahkan fitur tambahan di atas server asal yang ada, seperti sertifikat HTTPS terpusat dan konfigurasi header.
Terkadang, ada gunanya memiliki NGINX di mesin yang sama dengan layanan lokal lain, hanya untuk menyajikan konten dari layanan itu. Misalnya, API web ASP.NET menggunakan server web internal yang disebut Kestrel, yang bagus dalam menanggapi permintaan, tetapi tidak banyak yang lain. Sangat umum untuk menjalankan Kestrel pada port pribadi dan menggunakan NGINX sebagai proxy terbalik yang dapat dikonfigurasi.
Logging Terpusat
Yang ini cukup sederhana, tetapi memiliki sebagian besar lalu lintas Anda melalui satu layanan memudahkan untuk memeriksa log. Log akses NGINX berisi banyak info berguna tentang lalu lintas Anda, dan meskipun tidak mengalahkan fitur layanan seperti Google Analytics, ini adalah info yang bagus untuk dimiliki.
TERKAIT: Cara Menyiapkan Panel Analisis dan Pemantauan Elasticsearch untuk Bisnis Anda