Haproxy merupakan salah satu teknologi Load Balancing. Load balancing adalah sebuah konsep menyalurkan beban pada server . Jika semakin besar jaringan maka semakin besar pula traffic yang didapatkan dan Load balancer berperan sebagai solusi dari masalah tersebut. Keuntungan menggunakan haproxy yaitu dapat melayani semua port TCP yang ada serta memiliki statistik yang dapat dipantau oleh SysAdmin secara mudah.
Teknik load balancing yang sering digunakan adalah roundrobin dan least connection. RoundRobin adalah cara yang menganggap bahwa semua beban server sama, jadi setiap server yang ada di akses secara bergantian dan berurutan, sedangkan Least Connection hanya mengalihkan beban ke server yang dianggap kosong atau trafficnya rendah.
Berikut tahap untuk install dan config haproxy untuk keperluan webserver dan database mysql di OS Debian versi 8.x
- lakukan update dan upgrade repository nya dengan perintah apt-get update dan apt-get upgrade
- Kemudian install aplikasi haproxynya dengan perintah apt-get install haproxy
- Setelah terinstall, maka edit default config aplikasi haproxynya untuk mengarahkan settingan load balancernya, di /etc/default/haproxy , hilangkan tanda # di awal tulisan CONFIG
- Selanjutnya adalah mengedit settingan haproxy.cfg nya, supaya bisa diakses via web maka tambahkan config untuk web ui nya dibawah config defaultnya.
- untuk testing, lakukan restart service haproxynya dengan perintah service haproxy restart.
- Akses haproxy nya dengan url http://192.168.5.45:9000/haproxy dengan user dan passwordnya adalah haproxy . untuk user dan password ini dapat dirubah dibagian auth di haproxy.cfg .
- Berikut adalah contoh config untuk haproxy.cfg untuk webserver dan database mysql. lakukan restart service haproxy nya setelah melakukan perubahan config
- dari contoh no7 maka akan memunculkan di Web UI nya adalah seperti ini
- Berikut Penjelasannya :
- listen xxx adalah penamaan untuk load balancer nya, untuk kebutuhan apa , namakan yang mudah dimengerti dan dipahami.
- bind *:3382 adalah port yang diterima yaitu 3382 dengan semua hostname/ip di network local.
- option adalah opsi tambahan, kalau webserver httpchk dengan method GET dengan url / (home) ini seperti mengakses home di webserver jika returnkan 200 maka dianggap hidup oleh haproxy. Kalau mysql maka mysql-check dengan user haproxy, untuk mysql Anda perlu membuat user baru di mysql nya dengan nama haproxy dengan password kosong(nopassword), hostnamenya adalah % dan permissionnya hanya select.
- server adalah alamat yang mau diarahkan. jika mengakses port yang di bind. misal : server mysql82822 10.131.19.157:3306 check backup maxconn 64 , maka nama server nya adalah mysql82822 (nama ini bebas, tidak ada hubungan dengan hostname/host dgn ip yang dituju) , 10.131.19.157:3306 adalah ip dan port yang dituju , check adalah perintah untuk check service secara live, backup adalah ip tersebut hanya sebagai backup jika ada salah satu/primary nya mati/tidak bisa diakses servicenya, maxconn 64 adalah maksimal konek portnya ada 64 saja.
Sekian, Terima kasih.