Bagi Anda yang mempunyai webserver yang terpasang pada sistem operasi baik yang berbasis Linux maupun Windows, tentu tidak asing mendengar istilah Load Balancer (LB). Sesuai namanya, LB mempunyai fungsi sebagai penyeimbang trafik pada jaringan. LB dapat juga berperan sebagai Proxy yang membagi trafik baik yang masuk maupun yang keluar. Metode algoritma yang diterapkan pun beragam, bisa menerapkan Round Robin, Ratio, Fastest ataupun Least Connections.

Salah satu tool yang populer digunakan oleh web server administrator adalah HA Proxy. Dikutip dari website resmi http://www.haproxy.org/.

HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for very high traffic web sites and powers quite a number of the world’s most visited ones. Over the years it has become the de-facto standard opensource load balancer, is now shipped with most mainstream Linux distributions, and is often deployed by default in cloud platforms. Since it does not advertise itself, we only know it’s used when the admins report it 🙂

Intinya HA Proxy bisa digunakan sebagai LB untuk beberapa webserver yang dikelola. Sehingga untuk website dengan trafik yang tinggi, tidak mungkin hanya menggunakan 1 (satu) server saja. Diperlukan 2 (dua) atau lebih server untuk menangani trafik yang tinggi. Berikut contoh topologi yang dapat diterapkan dengan HA Proxy.

lb

 

Skenario

Menggunakan 1 (satu) Load Balancer Haproxy dan 2 (dua) server  dijadikan webserver serta 1 (satu) database serever untuk sebagai berikut.

  1. Hostname: haproxy
    OS: Ubuntu
    Public IP: 1.1.1.1
    Private IP: 10.0.0.100
  2. Hostname: webserver1
    OS: Ubuntu
    Private IP: 10.0.0.1
  3. Hostname: webserver2
    OS: Ubuntu
    Private IP: 10.0.0.2
  4. Hostname: dbserver
    OS: Ubuntu
    Private IP: 10.0.0.4

Instalasi HAProxy di host haproxy

Menggunakan perintah apt-get di Ubuntu untuk memasang HAProxy.

# apt-get install haproxy

Untuk mengaktifkan HAProxy ketika server melakukan booting.

# nano /etc/default/haproxy

Set the ENABLED option to 1

ENABLED=1

Untuk mengecek perintah apa saja yang dapat dilakukan terhadap service haproxy dapat dilakukan dengan perintah berikut.

# service haproxy
Usage: /etc/init.d/haproxy {start|stop|reload|restart|status}

Konfigurasi HAProxy di host haproxy

Pertama kita duplikasi file konfigurasi HAProxy yang asli sehingga ada backup file konfigurasi.

# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.orig

Buka file konfigurasi dengan editor kesayangan.

# nano /etc/haproxy/haproxy.cfg

Berikut contoh konfigurasi HAProxy.

global
    log 127.0.0.1 local0 notice
    maxconn 2000
    user haproxy
    group haproxy
defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    retries 3
    option redispatch
    timeout connect  5000
    timeout client  10000
    timeout server  10000
listen appname 0.0.0.0:80
    mode http
    stats enable 
    balance roundrobin #algoritma yang digunakan
    option httpclose
    option forwardfor
    server web1 10.0.0.1:80 check #ip address webserver1
    server web2 10.0.0.2:80 check #ip address webserver1
listen stats :1936
   mode http
   stats enable
   stats hide-version
   stats realm Haproxy\ Statistics
   stats uri /  #url untuk melihat statistik haproxy
   stats auth myUser:myPassword #akses ke statistik haproxy
 

Jalankan service HAProxy.

# service haproxy start

Jika haproxy sudah berjalan tanpa error, maka silakan buka web browser lalu ketikkan alamat IP Public milik haproxy.

Untuk mengecek log bisa dilihat dengan perintah berikut.

# tail -f /var/log/haproxy.log

Untuk melihat statistik haproxy silakan buka webbrowser, lalu ketikkan alamat haproxy (http://10.0.0.100:1936/). Akan tampil popup otentifikasi, isikan username dan password sesuai konfigurasi (myUser & myPassword).

Rating