HAProxy Sticky Session

Posted on 54 views

HAProxy Logo

HAProxy adalah software opensource yang meliputi koneksi TCP maupun HTTP agar dapat membagi beban ke beberapa server sehingga efektif ketika kita menjalankan skema multi server. Umumnya HAProxy digunakan sebagai Load Balancer atau penyeimbang traffic masuk namun bisa juga digunakan sebagai failover. Metode yang sering saya gunakan pada HAProxy yaitu Roundrobin dan Leastconn.

Roundrobin

Roundrobin adalah suatu algoritma proses yang membagi beban secara berurutan dari server pertama ke server kedua dan seterusnya hingga selesai, kemudian akan kembali ke server pertama jika server terakhir sudah terakses. Metode ini bisa dibilang cukup bodoh, karena ketika salah satu server mati atau kepenuhan maka server tersebut tetap mendapatkan traffic sehingga server terbebani berlebihan.

Leastconn

Leastconn adalah suatu algorima proses yang membagi beban berdasarkan tingkat koneksi, jadi bila ada salah satu server yang overload maka metode ini akan menyingkirkan  sementara server tersebut dan hanya membagi beban traffic pada server lain yang tidak terlalu sibuk.

Saya biasanya menggunakan metode leastconn karena bisa dibilang cukup jenius menangani pembagian bebannya.

Sticky Session

Nah jika kita mengkonfigurasi HAProxy secara default, umumnya tidak menyertakan session ke server server lain. Sehingga ketika kita login saat refresh sessionnya hilang dan kita mesti login kembali. Setelah searching google ketemu caranya, cukup tambahkan seperti ini pada /etc/haproxy/haproxy.cfg:

listen https_tcp_handler
    bind 0.0.0.0:443 # <- NO ssl setting
    mode tcp
    balance leastconn
    stick match src
    stick-table type ip size 200k expire 30m
    server web1 192.168.1.11:443 check ssl
    server web2 192.168.1.12:443 check ssl

Jika menggunakan mode TCP tidak diperlukan SSL Certificate tambahan karena TCP akan mengikuti SSL yang ada pada masing masing backend. Adapun jika menggunakan mode HTTP maka konfigurasinya seperti ini:

listen https_http_handler
    bind 0.0.0.0:443 ssl crt /etc/ssl/certs/certs.pem
    mode http
    balance leastconn
    # any stick rules you need
    server web1 192.168.1.11:443 check ssl
    server web2 192.168.1.12:443 check ssl

Cukup sesuaikan file ssl, kebetulan saya meletakannya pada /etc/ssl/certs/certs.pem. Jika sudah boleh direstart service haproxy kemudian cek dengan login kembali ke website terkait. Mestinya Sessionnya ikut dan kita tidak perlu login kembali.

Jika sudah OK, maka konfigurasi yang kita lakukan sudah berhasil. Cheers~~

Gravatar Image
Seorang warga negara Indonesia biasa. Pengguna MAC dan develop server Ubuntu & CentOS. Contact : admin [at] nugi.biz

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.