Home » Load Balance Apache Web Server Menggunakan HAProxy.

Load Balance Apache Web Server Menggunakan HAProxy.

Kantor baru, teman baru, project baru.
Itulah kalimat yang tepat untuk saya saat ini :)
Masuk kantor baru langsung disuruh membuat load balance system. Yang belum tahu tentang load balance, ini tidak jauh berbeda dengan system cluster. Perbedaannya yaitu di load balance kita akan mencoba membagi request yang menuju ke server secara round robin ( acak ). Detailnya googling aja ya :) .
Aplikasi yang saya gunakan sebagai Load Balancer nya adalah HAProxy karena pertimbangan kemudahan mengkonfigurasinya. Ok, berikut data dari mesin yang dimasukkan ke dalam load balance system :

Real Server 1 : 10.32.15.99 ( node99 )
Real Server 2 : 10.32.15.95 ( node95 )
Load Balancer : 10.32.15.100 ( lb1 )
Virtual IP / IP Public : 10.32.15.111

Konfigurasi di Real Server.
Install apache web server di kedua Real Server.

yum install httpd -y

Jalankan service apache web server dan konfigurasikan agar service apache berjalan otomatis ketika mesin restart di kedua Real Server.

service httpd start
chkconfig httpd on

Buat file kosong yang bernama check.txt di Document Root di

kedua Real Server yang akan digunakan aplikasi HAProxy

touch /var/www/html/check.txt

Konfigurasi di Load Balancer.
Install aplikasi haproxy bisa didapat dari website http://download.fedora.redhat.com/pub/epel/5/x86_64/repoview/haproxy.html
Sesuaikan dengan arsitektur OS anda, jika 32 bit gunakan yang i386, jika 64 bit gunakan yang x86_64.

rpm -ivh haproxy-1.3.26-1.el5.x86_64.rpm

Edit file konfigurasi HAProxy yang ada di folder /etc/haproxy/haproxy.conf.
Hapus semua isi file haproxy.conf, lalu isi dengan konfigurasi berikut :

global
        log 127.0.0.1   local0
        log 127.0.0.1   local1 notice
        maxconn 4096
        user    haproxy
        group   haproxy

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option  redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen http80 10.32.15.111:80
        mode    http
        stats   enable
        stats   auth    haproxy:centos
        balance roundrobin
        cookie  JSESSIONID prefix
        option  httpclose
        option  forwardfor
        option  httpchk HEAD /check.txt HTTP/1.0
        server  node99  10.32.15.99:80  cookie A check
        server  node95  10.32.15.95:80  cookie B check

Jalankan service HAProxy dan konfigurasikan agar berjalan secara otomatis ketika mesin restart.

service haproxy start
chkconfig haproxy on

Lalu buka web browser dan masukkan url berikut ini untuk melihat status dari load balance yang telah dibuat.


http://10.32.15.111/haproxy?stats

Berikut screenshot jika Load Balance sudah berjalan dengan baik.

ref :
Disini

5 Responses to “Load Balance Apache Web Server Menggunakan HAProxy.”

  1. Sriyono Smg says:

    wah ini levelnya para geek, yang masih awam kaya saya merhatiin dulu ah….

  2. rhian says:

    Terus untuk sinkronisasi antar 2 webserver nya gimana gan?
    Pake HaProxy nya juga atau aplikasi lain?

    btw thank for sharing

  3. adit says:

    @rhian : untuk sinkronisasi datanya bisa menggunakan rsync untuk update data antar web server nya.

  4. rhian says:

    rsync bisa buat realtime ? atau tetep pasang dicrontab?
    rsync bukan nya sinkron 1 way gan, atau bisa duplex ya?
    kalo misalnya cuma bisa 1 way, brarti untuk write cuma di 1 sisi doang (master) ?
    cmiiw
    hehe banyak nanya, lagi belajar haproxy neh, thx :)

  5. adit says:

    rsync bisa dikonfigurasikan secara realtime, ada yang namanya rsync daemon.
    Yaps, rsync hanya 1 arah aja. Jadinya master-slave untuk update datanya. Klo mau master-master bisa menggunakan GlusterFS atau DRBD. Tapi GlusterFS menurut saya confignya lebih mudah ketimbang DRBD. :)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>