jika kamu mempunyai sebuah server kemudian server tersebut memiliki traffic yang sangat besar apakah server kamu dapat memproses data traffic tersebut ? sedangkan kamu sudah tidak memiliki opsi upgrade server ? untuk mengatasi hal tersebut kamu sangat memerlukan HAProxy, artikel ini akan membahas tentang Instalasi & Konfigurasi HAProxy !
Pengertian HAProxy
HAProxy adalah perangkat lunak open source yang berfungsi sebagai load balancer dan reverse proxy. HAProxy digunakan untuk membagi beban trafik antara beberapa server backend yang berjalan di belakangnya, sehingga dapat meningkatkan ketersediaan, skalabilitas, performa, dan keamanan aplikasi.
Selain itu, HAProxy juga dapat melakukan modifikasi permintaan dan respons, melakukan caching, mempercepat waktu respon, serta memantau kesehatan server backend.
HAProxy dapat diintegrasikan dengan berbagai jenis teknologi dan dapat berfungsi sebagai solusi load balancing di berbagai jenis aplikasi dan infrastruktur sistem. HAProxy tersedia dalam versi open source dan enterprise.
Cara Kerja HAProxy
HAProxy merupakan sebuah perangkat lunak yang dapat berfungsi sebagai load balancer dan reverse proxy. Cara kerja HAProxy adalah sebagai berikut:
- HAProxy menerima permintaan dari client (user/browser) dan meneruskan permintaan tersebut ke server yang sesuai berdasarkan algoritma load balancing yang telah dikonfigurasi.
- Sebelum diteruskan ke server yang dituju, HAProxy dapat melakukan modifikasi pada permintaan, seperti menambahkan header kustom, mengubah path atau protokol, atau melakukan validasi input.
- Setelah permintaan diteruskan ke server, HAProxy dapat melakukan manajemen koneksi dengan server, seperti mengatur kecepatan koneksi dan mempercepat koneksi dengan mempertahankan koneksi terbuka.
- Ketika server memberikan respons, HAProxy menerima respons tersebut dan meneruskannya kembali ke client.
- HAProxy juga dapat melakukan caching terhadap respons dari server agar dapat mempercepat waktu respon pada permintaan yang serupa.
- Selain itu, HAProxy juga dapat melakukan pemantauan terhadap kesehatan server yang terhubung dan jika server mengalami kegagalan atau tidak responsif, maka HAProxy akan mengarahkan permintaan ke server yang masih aktif atau sehat.
- HAProxy juga memiliki fitur SSL offloading, yaitu melepas beban SSL dari server dan memproses SSL pada HAProxy sehingga dapat meningkatkan performa dan keamanan server.
Dengan cara kerja seperti di atas, HAProxy dapat meningkatkan performa, keamanan, dan ketersediaan server serta mengoptimalkan pengalaman pengguna ketika mengakses aplikasi atau website.
Mengapa Harus HAProxy ?
Ada beberapa alasan mengapa sebaiknya kita menggunakan HAProxy dalam infrastruktur sistem, di antaranya:
- Load Balancing : HAProxy dapat membagi beban trafik, sehingga mampu mengatur beban lalu lintas dan ketersediaan aplikasi meningkat.
- High Availability : mampu memantau server backend, jika ada server yang down maka HAProxy akan mengarahkan lalu lintas ke server yang lain
- Scalability : Dengan menggunakan HAProxy, kita dapat menambah atau mengurangi server backend sesuai dengan kebutuhan tanpa memengaruhi pengguna yang menggunakan aplikasi.
- Flexibility : HAProxy memiliki fitur yang sangat fleksibel, dapat diintegrasikan dengan berbagai jenis teknologi, seperti server web, server aplikasi, atau server database.
- Performance : HAProxy memiliki kemampuan untuk mempercepat waktu respon aplikasi dengan melakukan caching terhadap permintaan dari client, SSL offloading dan optimasi protokol.
- Security : HAProxy dapat berfungsi sebagai reverse proxy dan menyembunyikan server backend dari client, sehingga mampu melindungi server backend dari serangan langsung dan meningkatkan keamanan aplikasi.
- Monitoring : HAProxy dapat memberikan informasi terkait kinerja aplikasi dan server backend melalui fitur monitoring dan logging yang lengkap.
Dengan menggunakan HAProxy, kita dapat meningkatkan performa, ketersediaan, skalabilitas, keamanan, dan fleksibilitas infrastruktur sistem serta mengoptimalkan pengalaman pengguna ketika mengakses aplikasi atau website.
Persiapan Instalasi
Sebelum memulai proses Instalasi & Konfigurasi HAProxy ada 2 hal yang perlu kamu persiapkan :
- Server VPS / VM, kamu bisa order VPS/VM di https://www.cloudaja.id/cloud-vps-indonesia
- Domain Aktif, kamu bisa order di https://www.natanetwork.com/harga-domain-internasional atau https://www.natanetwork.com/harga-domain-indonesia
Instalasi HAProxy
Tutorial kali ini akan dilakukan di OS Ubuntu 22.04
- Install HAProxy dengan perintah berikut:
sudo apt-get update
sudo apt-get install haproxy - Setelah proses instalasi selesai, buka file konfigurasi haproxy.cfg dengan perintah:
sudo nano /etc/haproxy/haproxy.cfg
- Konfigurasi HAProxy untuk membagi beban pada dua server web yang berbeda dengan menambahkan kode berikut pada file haproxy.cfg:
frontend http-in
bind *:80
default_backend servers
backend servers
balance roundrobin
server web1 192.168.0.101:80 check
server web2 192.168.0.102:80 check
keterangan :frontend http-in
: mengatur pengaturan untuk bagian depan load balancerbind *:80
: mengikat load balancer ke port 80 pada semua alamat IP yang tersediadefault_backend servers
: menentukan backend default untuk request masuk yang belum diarahkan ke backend tertentubackend servers
: mengatur pengaturan untuk backend yang digunakan untuk memproses request yang diterimabalance roundrobin
: membagi beban secara merata antara server-server yang tersediaserver web1 192.168.0.101:80 check
: menambahkan server web1 dengan alamat IP 192.168.0.101 dan port 80 sebagai server yang di-load balance,check
berarti server akan diuji secara berkala untuk mengetahui apakah masih berfungsi dengan baikserver web2 192.168.0.102:80 check
: menambahkan server web2 dengan alamat IP 192.168.0.102 dan port 80 sebagai server yang di-load balance.
- Setelah melakukan konfigurasi, restart HAProxy dengan perintah:
sudo systemctl restart haproxy
Dengan melakukan konfigurasi tersebut, HAProxy akan membagi beban pada kedua server web secara merata dan dapat mempercepat pengiriman data dari server ke client.
Konfigurasi HAProxy Stats
Untuk mengetahui status dan performa HAProxy, dapat dilakukan konfigurasi HAProxy stats dengan langkah-langkah berikut:
- Buka file konfigurasi haproxy.cfg dengan perintah:
sudo nano /etc/haproxy/haproxy.cfg
- Tambahkan kode berikut pada bagian akhir file haproxy.cfg:
listen haproxy-stats
bind :9000
mode http
stats enable
stats hide-version
stats realm Haproxy\ Statistics
stats uri /haproxy_stat
sstats auth username:password
Keterangan:listen haproxy-stats
: mendefinisikan akses ke fitur statistik haproxybind :9000
: mengikat haproxy-stats ke port 9000 pada semua alamat IP yang tersediamode http
: mendefinisikan mode HTTPstats enable
: mengaktifkan fitur statistikstats hide-version
: menyembunyikan versi haproxystats realm Haproxy\ Statistics
: memberikan pesan otentikasistats uri /haproxy_stats
: mengatur alamat URL untuk akses ke statistik haproxystats auth username:password
: menentukan username dan password untuk mengakses halaman statistik haproxy.
- Restart HAProxy dengan perintah:
sudo systemctl restart haproxy
- Akses halaman statistik haproxy dengan membuka browser dan mengakses URL
http://[IP_Address_HAProxy]:9000/haproxy_stats
dan masukkan username dan password yang telah ditentukan pada konfigurasi sebelumnya.
Dengan melakukan konfigurasi HAProxy stats, kita dapat mengakses halaman statistik haproxy untuk memantau kinerja dan performa HAProxy, seperti jumlah koneksi aktif, permintaan per detik, serta jumlah data yang ditransfer.