Web Load Balancing Menggunakan HAProxy

Load balancing adalah proses pendistribusian traffic jaringan ke beberapa server. Ini untuk memastikan salah satu server tidak menanggung terlalu banyak beban permintaan. Server website yang kelebihan beban membuat proses muat halaman menjadi lambat, atau bahkan tidak terhubung sama sekali.

Secara sederhana, berikut cara kerja load balancing:

  • Pengguna meminta akses masuk server website / aplikasi
  • Load balancer menerima dan mendistribusikan traffic ke beberapa server
  • Jika satu server down, perangkat ini mengalihkan traffic ke server lain yang tersedia
load balancing haproxy

Baca Juga: Load Balancing Web dengan NGINX

Terdapat beberapa pilihan software opensource yang dapat digunakan untuk membuat lingkungan web load balancing. Salah satu yang paling umum digunakan ialah Haproxy. Tutorial ini akan menggunakan Haproxy sebagai software utama untuk mengatur load balancing.

Langkah-langkah membuat load balancing dengan Haproxy

1. Persiapan server

Gunakan 3 server / VM yang saling terkoneksi, misalnya:

  1. VM-1 : 192.168.1.14 (sebagai server Haproxy)
  2. VM-2 : 192.168.1.15 (sebagai node web server 1)
  3. VM-3 : 192.168.1.17 (sebagai node web server 2)

2. Konfigurasi VM-1 sebagai server Haproxy

2.1 Sebelum melakukan instalasi HAproxy terlebih dahulu update repository ubuntu, dengan cara: > sudo apt update

2.2 Selanjutnya lakukan instalsi HAproxy dengan perintah > sudo apt install haproxy

2.3 Setelah proses instalasi haproxy selesai, tambahkan IP dari masing-masing web server dengan cara > sudo nano /etc/hosts

2.4 Langkah selanjutnya, melakukan konfigurasi load balancer pada file haproxy.cfg. Buka file tersebut dengan perintah: > sudo nano /etc/haproxy/haproxy.cfg

2.5 Tambahkan Haproxy listener pada bagian bawah file config:

frontend front-loadbalance
    bind 192.168.1.14:80
    mode http
    default_backend back-loadbalance

2.6 Tambahkan konfigurasi backend server pada bagian bawah:

backend back-loadbalance
    balance roundrobin
    server web-server1 192.168.1.15 check port 80
    server web-server2 192.168.1.17 check port 80

2.7 Tambahkan enable stat untuk monitoring status load balancing:

listen stats
    bind 192.168.1.14:8080
    stats enable
    stats hide-version
    stats refresh 30s
    stats show-node
    stats auth username:password
    stats uri /stats

2.8 Save, kemudian cek status HAproxy > systemctl restart haproxy.service

2.9 Jika langkah sebelumnya Valid, maka restart HAproxy service menggunakan perintah > haproxy –c –f /etc/haproxy/haproxy.cfg

3. Konfigurasi node server (untuk VM-2 dan VM-3)

3.1 Langkah pertama yang dilakukan adalah menginstall apache2 dengan perintah > sudo apt install apache2

3.2 Setelah apache berhasil terinstall, langkah selanjutnya adalah mengedit file konfigurasi di file host dengan menggunakan perintah > sudo nano /etc/hosts (Pada file tersebut masukkan IP haproxy seperti pada gambar berikut):

3.3 Setelah itu, aktifkan service apache2 dengan perintah > sudo systemctl enable apache2

3.4 Kemudian restart apache2 menggunakan perintah > sudo systemctl restart apache2

3.5 Masuk ke directory web host: >  cd /var/www/html

3.6 Buat index.html dengan perintah > sudo touch index.html

3.7 Buat halaman sederhana pada index.html > sudo nano index.html, contohnya:

<html>
<body> Ini halaman web dari node web server 1</body>
</html>

3.8 Uji coba akses melalui browser

3.9 Lakukan proses yang sama untuk VM-3 / node server ke-2

4. Uji coba load balancing

4.1 Akses IP server Haproxy

* Halaman akan menampilkan dari server mana halaman tersebut berasal

4.2 Akses stats pada IP server haproxy, contoh URL: http://192.168.1.14:8080/stats

4.3 Jika ada permintaan login, masukkan username & password sesuai isian configurasi pada bagian 2.7

4.4 Hasil stat

Leave a Reply