Reverse proxy server merupakan jenis server proxy yang digunakan antara klien dan server back-end/origin, misalnya server HTTP seperti NGINX, Apache, dll. atau server aplikasi yang ditulis dalam Nodejs, Python, Java, Ruby , PHP, dan banyak bahasa pemrograman lainnya.
Reverse proxy adalah gateway atau server perantara yang menerima permintaan klien, meneruskannya ke satu atau lebih server back-end, dan kemudian mengambil respons dari server dan mengirimkannya kembali ke klien, sehingga membuatnya tampak seolah-olah konten berasal dari server reverse proxy itu sendiri.
Biasanya reverse proxy server digunakan pada proxy internal yang digunakan sebagai 'front-end' untuk mengontrol dan melindungi akses ke server back-end di jaringan private.
HAProxy adalah HTTP reverse-proxy, TCP proxy dan normalizer, SSL/TLS terminator/initiator/offloader, caching proxy, HTTP compression offloader, traffic regulator, content-based switch, FastCGI gateway, dan banyak lagi. Ini juga merupakan perlindungan terhadap DDoS dan penyalahgunaan layanan.
HAProxy didukung oleh mesin non-pemblokiran yang digerakkan oleh peristiwa yang menggabungkan lapisan I/O yang sangat cepat dengan penjadwal multi-utas berbasis prioritas yang memungkinkannya menangani puluhan ribu koneksi bersamaan dengan mudah.
Khususnya, HAProxy menggunakan protokol PROXY untuk meneruskan informasi koneksi klien ke backend atau server asal sehingga aplikasi mendapatkan semua informasi yang relevan.
Beberapa fitur dasar HAProxy termasuk proxy, dukungan SSL, pemantauan status server dan statusnya sendiri, ketersediaan tinggi, penyeimbangan beban, stickiness (menjaga pengunjung di server yang sama bahkan di berbagai acara), pengalihan konten, penulisan ulang HTTP, perlindungan server, logging, statistik, dan banyak lagi.
Sama seperti HAProxy, NGINX memiliki arsitektur yang digerakkan oleh peristiwa sehingga tidak ada masalah dalam menangani puluhan ribu koneksi bersamaan, karena menggunakan protokol PROXY HAProxy.
NGINX mendukung reverse proxy yang dipercepat dengan caching menggunakan modul ngx_http_proxy_module, yang memungkinkan meneruskan permintaan ke server lain melalui protokol selain HTTP, seperti FastCGI, uwsgi, SCGI, dan memcached.
NGINX mendukung penyeimbangan beban dan toleransi kesalahan yang merupakan aspek vital dari sistem komputasi terdistribusi skala besar.
Modul ngx_http_upstream_module memungkinkan untuk mendefinisikan grup server backend untuk mendistribusikan permintaan yang datang dari klien. Hal ini membuat aplikasi Anda lebih tangguh, tersedia dan andal, sangat skalabel, dengan waktu respons dan throughput.
Selain itu, mengenai keamanan, NGINX mendukung penghentian SSL/TLS dan banyak fitur keamanan lainnya.