Reverse Proxy : Pengertian dan Cara Kerja
Reverse proxy pada jaman ini makin banyak digunakan, dipelajari dan dibahas di banyak forum, terutama forum-forum Sysadmin, Devops, hingga forum-forum yang membahas IT Infrastructure. Karena keunggulannya, metode reverse proxy ini juga banyak digunakan untuk melengkapi topologi aplikasi-aplikasi masa kini yang menggunakan micro services. Biasanya proxy ini akan berlaku sebagai Load Balancer. Dia akan membagi beban ke masing-masing backend node.
Pengertian Reverse Proxy
Reverse Proxy adalah salah satu jenis Server Proxy yang bertanggungjawab dalam meneruskan request client ke server. Reverse Proxy terletak diantara client dan server. Jadi, request yang dilakukan client akan diteruskan oleh reverse proxy untuk mencapai ke server. Mudahnya, Reverse Proxy ini berada diantara client dan server yang bertugas untuk menjamin pertukaran data antara client dan server berjalan dengan lancar. Reverse Proxy biasanya diterapkan pada web server seperti Apache dan Nginx. Selain itu, dikutip dari CloudFlare, Reverse Proxy juga digunakan sebagai keamanan agar proses pertukaran request dari client ke server atau sebaliknya berjalan dengan aman. Tidak hanya itu, Reverse Proxy juga bisa melakukan kompresi data. Data yang besar akan dilakukan kompresi sehingga menjadi data dengan ukuran yang lebih kecil. Hal itu dapat membuat pertukaran data berjalan lebih cepat. Reverse Proxy juga memiliki kemampuan untuk menyeimbangkan load atau beban server agar server tidak down.
Sebagai sebuah server perantara, reverse proxy bertugas meneruskan request klien (misalnya browser web) ke server web yang tepat. Secara umum, ada tiga alasan utama kenapa perlu menggunakan server ini, yaitu :
- Security – dengan mengelola permintaan sebelum sampai di web server tujuan, reverse proxy bisa menjadi tembok penahan jika terjadi serangan (cyber attack). Tidak heran jika server ini sering berada di belakang sebuah firewall sebuah private network.
- Speed – dengan kemampuan untuk melakukan kompres data, pertukaran data bisa dilakukan lebih cepat.
- Reliability – dengan menjalankan load balancing, diharapkan tidak terjadi beban server berlebih yang akan mengakibatkan server down.
Nginx reverse proxy adalah salah satu server terbaik untuk tugas tersebut. Bahkan kemampuannya diklaim mampu menangani load traffic yang tinggi. Tidak heran banyak perusahaan di dunia seperti DropBox memanfaatkannya.
Sedikit tentang IP Address
Jika akan membahas tentang penghematan IP, tentu perlu membahas tentang IP Address. IP address yang dikenal selama ini ada dua versi :
- IP versi 4
- IP versi 6
IP versi 4 ini masih dominan digunakan. Masih banyak website-website penting yang belum menyediakan akses via IP versi 6. Saat ini kondisinya persediaan IP versi 4 ini sudah akan habis, atau malah sudah habis, sedangkan IP versi 6 saat ini belum cukup populer untuk digunakan. Sebagian besar server dunia masih banyak yang belum memiliki IP versi 6 untuk solusi networkingnya. Masih mengandalkan IP versi 4.
Begitu pula dengan kampus di Indonesia. Website dan sistem-sistem informasi kampus, masih dominan penggunaan IP Versi 4. Sangat jarang yang sudah menyediakan IP versi 6. Biasanya kampus membeli sewa IP Address dari sebuah provider, atau melalui IDNIC. Pembelian via provider biasanya akan diberikan alokasi subnet kecil, dengan pemilik AS Number tetap dari provider. Pembelian langsung ke IDNIC biasanya akan langsung mendapatkan satu (atau lebih) blok IP atas nama kampus tersebut, dengan AS Number milik kampus.
Pada IP versi 4 secara alokasi cakupan, dikenal dua jenis IP :
- Private IP : IP ini bisa dibuat sendiri oleh network administrator gedung atau kantor, menurut kaidah yang berlaku, dan penggunaan angka yang diijinkan. ( 192.168.x.x, 172.16.x.x, 10.x.x.x)
- Public IP : IP ini harus sewa, beli, atau diberikan alokasi oleh Internet Provider. Biasanya bisa beli per-satuan, subnet, atau blok AS Number.
Jika sebuah kampus, memiliki alokasi IP Publik dengan subnet /29, maka si kampus tersebut hanya akan dapat menggunakan 5 buah IP publik. Jika kebutuhan server di dalam kampus tersebut banyak membutuhkan IP Publik, maka kampus tersebut harus membeli alokasi IP address lagi.
Kadang ada network administrator kampus yang melakukan penghematan IP dengan menggunakan mekanisme DNAT. Satu IP, akan digunakan beramai-ramai banyak server di dalam network, untuk melayani keperluan via public connection. Solusi ini tidak efektif, satu port hanya dapat digunakan satu kali. Sehingga jika di belakang router terdapat lebih dari satu server web, maka salah satu harus mengalah untuk tidak menggunakan default port 80. Nah, di sinilah bisa memanfaatkan fungsi reverse proxy.
Cara Kerja Reverse Proxy
Seperti yang sudah dijelaskan diatas, Reverse Proxy berada diantara client dan server. Fungsi utama Reverse Proxy adalah menerima dan meneruskan request dari client ke server atau sebaliknya. Cara kerja Reverse Proxy bisa digambarkan seperti contoh berikut, misalnya bertindak sebagai client yang ingin mengakses suatu website. Request yang diberikan client sebelum sampai ke server akan diterima oleh reverse proxy terlebih dahulu. Setelah itu Reverse Proxy akan meneruskan ke server dan kemudian menerima balasan dari server yang nantinya akan disampaikan ke client.
Menggunakan Reverse Proxy Nginx
Salah satu web server yang digunakan sebagai Reverse Proxy adalah Nginx. Nginx adalah salah satu web server yang rilis pada tahun 2004 oleh Igor Sysoev. Dibangun dengan bahasa pemrograman C, Nginx banyak digemari karena cukup stabil, hemat resource dan cocok untuk server dengan spesifikasi rendah. Reverse Proxy Nginx ini banyak digunakan sebagai jembatan untuk komunikasi client dan server. Beberapa alasan mengapa harus menggunakan Reverse Proxy Nginx antara lain :
- Setting Reverse Proxy Nginx mudah untuk dilakukan dan terjamin keamanannya.
- Reverse Proxy Nginx bisa bekerja di berbagai macam protokol, seperti HTTPS, TCP, UDP, SMTP, IMAP dan POP3.
- Reverse Proxy Nginx memiliki kemampuan untuk melakukan kompresi data agar data dapat berjalan dengan lancar.
- Nginx adalah salah satu web server yang ringan dan banyak digunakan oleh sysadmin untuk infrastruktur IT.
- Nginx bertugas untuk menyeimbangkan load atau bebas server dengan berbagai metode.
Manfaat Menggunakan Nginx Reverse Proxy
Sebagai sebuah web server terbaik, Nginx cukup bermanfaat untuk digunakan sebagai reverse proxy.
- Aman. Dapat memberikan keamanan dari serangan server web seperti DDoS dan DoS. Selain itu, enskripsi SSL juga dapat dijalankan dengan baik untuk melindungi privasi konten.
- Cepat. Nginx Reverse Proxy dapat membantu menyeimbangkan load antar server back end sehingga proses transfer data lebih stabil. Plus, menyediakan caching agar upaya memproses data bisa berjalan lebih optimal. Tidak hanya itu, kemampuannya melakukan kompres membuat transfer data lebih cepat.
- Mudah. Jika menggunakan Nginx tidak perlu melakukan set up proses baru untuk setiap web request dari klien. Sebab, konfigurasi default-nya telah meliputi satu proses kerja per CPU.
- Fleksibel. Nginx juga dapat bekerja sebagai reverse proxy server untuk berbagai protokol. Misalnya, seperti: HTTP, HTTPS, TCP, UDP, SMTP, IMAP dan POP3.
- Reliable (Dapat Diandalkan). Server ini dapat menangani lebih dari 10.000 koneksi dengan jejak memori yang rendah. Selain itu, Nginx dapat mengoperasikan beberapa server web melalui satu IP address. Dan, mengirimkan setiap permintaan ke server yang tepat dalam LAN.
- Cocok untuk Testing. Nginx server proxy memungkinkan untuk melakukan eksperimen acak atau tes A/B tanpa menempatkan kode JavaScript ke halaman.