Mengenal session dan cookies pada ha-proxy

0
915

Halo sobat sekolahlinux kali ini saya akan coba membagi sedikit apa yang saya alami di pekerjaan saya, jadi ada client ditempat kerja saya mengeluhkankan kenapa beban yang harus terbagi secara merata malah tidak berfungsi, dan kadang malah memberatkan di 1 server, setelah ditelusuri oleh saya dan team ditemukanlah penyebabnya adalah sticky session, jadi ketika kita mengaktifkan cookies maka algoritma loadbalancer (roundrobin, leastcon) akan di skip, kurang lebih menjadi seperti dibawah gambarannya

      client request
            |
            V
    HAProxy Frontend
            |
            V
     backend choice
            |
            V
    HAproxy Backend
            |
            V
Does the request contain
persistence information ---------
            |                   |
            | NO                |
            V                   |
    Server choice by            |  YES
load-balancing algorithm        |
            |                   |
            V                   |
   Forwarding request <----------
      to the server

session pada ha-proxy sendiri ada 2 yaitu affinity dan persistance (sticky session)

contoh affinity contohnya seperti dibawah ini

frontend ft_web
  bind 0.0.0.0:80
  default_backend bk_web
 
backend bk_web
  balance source
  hash-type consistent # optional
  server s1 192.168.10.11:80 check
  server s2 192.168.10.21:80 check

sedangkan untuk persistence contohnya seperti dibawah ini

frontend ft_web
  bind 0.0.0.0:80
  default_backend bk_web
 
backend bk_web
  balance roundrobin
  cookie SERVERID insert indirect nocache
  server s1 192.168.10.11:80 check cookie s1
  server s2 192.168.10.21:80 check cookie s2

adapun untuk cara kerjanya seperti yang jabarkan dibawah

  • affinity: menggunakan ip level information sebelum aplication layer untuk mengarahkan user ke single server
  • persistance: menggunakan aplication layer information untuk mengarahkan user ke salah satu single server
    • membuat cookie untuk the session.
    • menggunakan cookie, seperti ASP.NET_SessionId, JSESSIONID, PHPSESSIONID, dan lainnya.
  • sticky session: session yang nantinya akan di maintenance oleh persistance

sekiranya itu yang bisa saya jabarkan berdasarkan dari apa yang saya pahami

sumber: http://blog.haproxy.com/2012/03/29/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know/