Showing posts with label Load Balancing. Show all posts
Showing posts with label Load Balancing. Show all posts

Cara Load Balance Web Server dengan Haproxy di Ubuntu Server

Cara  Load  Balance Web  Server  dengan   Haproxy di  Ubuntu  Server 

Tutorial Linux  Indonesia --  Pada  artikel  ini    bagol69  akan  membahas   cara   load  balance   web  server  dengan   menggunakan   Haproxy   di  Ubuntu  Server. 


Cara  Load  Balance Web  Server  dengan   Haproxy di  Ubuntu  Server
Cara  Load  Balance Web  Server  dengan   Haproxy di  Ubuntu  Server 


Haproxy  merupakan  salah  satu  aplikasi  yang  digunakan  untuk  load  balancing  server. 

Load  balancing  merupaka   salah  satu  teknik  yang   digunakan  untuk  mengurangi  beban  dari  server  dengan  cara  membagi  beban  load  ke  tiap  server.

Persiapan 

Server 1 – Load  Balancing 
Hostname  :  bagol69
Ip  addres : 10.10.10.1

Server  2 – BACKEND 
Hostname :  client1
HTTP  SERVER
IP ADDRES 10.10.10.2

Server 3 – Backend
Hostname : client2
Ip  address : 10.10.10.3

INSTALL  HAPROXY  INSTALL    DAN  KONFIGURASI HAPROXY 

Nah,   pada   server 1  sebagai    server  load  balancing  server. 

Kita  dapat  menggunakan    command  di  bawah  ini  untuk   install  Haproxy.


root@bagol69:~# apt-get install   haproxy  -y

Lakukan  backup   file  konfigurasi  Haproxy.


root@bagol69:~# mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.org

Kemudian edit  file  konfigurasi   Haproxy, menggunakan  editor    favorit  anda.


root@bagol69:~# nano  /etc/haproxy/haproxy.cfg

Silahhkan  anda  edit  pada    menu   global  dan  defaults.

global
        log     127.0.0.1 local2 info
        chroot  /var/lib/haproxy
        pidfile /var/run/haproxy.pid
        maxconn 256
        user    haproxy
        group   haproxy
        daemon

Note

  -   Log  menandakan  kita  akan  menyimpan  log    secara  localhost  127.0.0.1.

  -   Maxconn berarti  jumlah  maksimal koneksi  secara  bersamaan   yang  di  berikan  oleh   Haproxy.

  -   User  dan  Group  adalah    user   yang  menangani servis   Haproxy.


Edit  Pada Bagian   defaults. Untuk menambahkan   tambahan  perintah-perintah  di  bawah ini. 


defauls
        mode            http
        log             global
        option          httplog
        timeout connect  10s
        timeout client   30s
        timeout server   30s
frontend http-in
        bind *:80
        default_backend   backend_servers
        option            forwardfor

Anda  tambahkan   opsi    timeout  pada  bagian    defaults.  

Timeout connect   yang berarti memberikan   batasan  waktu  untuk  terhubung  ke  server, jika  melebihi  batas  waktu  tersebut  akan di  anggap  time out.

Sedangkan   opsi   timeout  client  dan server   fungsinya  sama  yaitu  memberikan  batasan  waktu  untuk   koneksi  terhubung ke  server. 

Artikel  Terkait 


Cara Install Zabbix Server di Ubuntu 16.04

Install Elastic Search di Centos 7

Apa itu Docker Volume ?

Unuk  opsi   mode  digunakan  untuk menentukan     services   apa  yang  kita  load  balancing.  

Kali  ini,  saya  ingin  servis  http   untuk  load  balancing,  maka  saya  menambahkan   mode  http.

Kita  dapat   menambahkan  server  yang  buat  load  balancing.  

backend  backend_servers
        balance         roundrobin
        server          client  10.10.10.2:80  check
        server          client2 10.10.10.3:80  check

Pada   opsi  roundrobin    merupakan  metode  load  balancing   yang  saya  pilih,  karena  secara  otomatis   akan mencari   server  yang     up  (  menyala  ) pada  saat    salah  server  tersebut  down. 

Banyak  metode   yang   di gunakan untuk   metode  load  balancing  yaitu 

  1. Round  Roubin
  2. Static  Round  Roubin
  3. Least Connections
  4. Source
  5. URL
  6. URL  PARAMETER

Untuk  opsi   server  digunakan  untuk  server  backend,  command  seperti   di  bawah  ini. 

      server  
 
[:port] [param*]
Untuk  Opsi  nama_server    di  gunakan untuk   hostname  server  backend.  Nanti  akan  muncul  di  log  Haproxy. 

Opsi  check   berfungsi  untuk mejalankan   fitur   health   check   untuk mengetahui  status  dari  server  backends. 


Setelah  selesai  konifugrasi   Haproxy   jalankan  servis   Haproxy  menggunakan  command  di  bawah  ini.


root@bagol69:~# /etc/init.d/haproxy restart
[ ok ] Restarting haproxy (via systemctl): haproxy.service.
root@bagol69:~#
 

PENGETESAN    LOAD  BALANCE  DAN   FAILOVER 

Sekarang  saat   melakukan  pengetesan   load  balance  dan   failover.

 Kita  akan  test  load  balance   menggunakan script  html  sederhana. 

Server Backend  1

Kita  aktifkan,  module   remote  ip  di  server  backend  1  untuk   menjalankan    load  balance.  Menggunakan  command  di  bawah  ini. 


root@client:~# a2enmod remoteip
Module remoteip already enabled
root@client:~#

Pada  file  /etc/apache2/apache2.conf   kita   berikan alamat ip  address   server  load  balance dan  failover.


root@client:~# nano  /etc/apache2/apache2.conf
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 10.10.10.1
LogFormat "%v:%p %a %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%a %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

 Kita  buat   script  sederhana    html untuk  melakukan     pengetesan    failover  dan  load  balance  HTTP Server. 


root@client:/var/www/html# nano  /var/www/html/index.html
WEBSERVER 10.10.10.2

Jika  sudah  konfigurasi    HTTP  untuk   melakukan pengetesan  Load  Balance  dan  Failover, kita jalankan   servis  http  server. 


root@client:~# /etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.
root@client:~#

Server  Backend  2

Kita  sudah  konfigurasi   HTTP  server  di  server  backend  1 untuk mengaktifkan  load  balance  dan  failover, sekarang  kita  lakukan  sama  degan    sevrer  backend 1. 


Untuk mengaktifkan  load  balance  dan  failover  di  server  backend 2. 

Kita  aktifkan   module  remoteip    supaya  dapat  melakukan  koneksi   ke   server  load  balancing. 


root@client:~# a2enmod remoteip
Module remoteip already enabled
root@client:~#

Kita   berikan   alamat  ip  address  dari  server    load  balancing.   Menggunakan  command  di  bawah  ini. 

root@client:~# nano  /etc/apache2/apache2.conf
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 10.10.10.1
LogFormat "%v:%p %a %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%a %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

Kita  menggunakan   script  sederhan  HTML untuk  melakukan  pengetesan  HTTP  load  balancing  dan   failover. 


root@client:/var/www/html# nano  /var/www/html/index.html
WEBSERVER 10.10.10.3

Jika  sudah  konfigurasi  HTTP  Server,  aktifkan   servis   http  server  menggunakan  command  di  bawah  ini. 


root@client:~# /etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.
root@client:~#

Server  Load  Balance  dan  Failover   Haproxy. 

Untuk  mengaktifkan  Log   dari   Haproxy untuk   memudahkan  kita  untuk  melakukan  analisa, apabila    server   load  balancing  dan  failovernya   mengalami  nganguan  dan  tidak  bekerja  server  Haproxy. 

Aktifkan    rsyslog   di  server  Haproxy.  Secara  default  rsylog  sudah  dapat  berjalan  di   Ubuntu. 

Kita  aktifkan module (load=”imodp” )  untuk   menjalankan  log  dari  Haproxy.


root@bagol69:~# nano  /etc/rsyslog.conf
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
$AllowedSender UDP, 127.0.0.1

Kita  tambahkan  folder  dari  haproxy  log.   Menggunakan  command  di  bawah  ini. 


root@bagol69:~# nano  /etc/rsyslog.d/50-default.conf
*.*;auth,authpriv.none;local2.none              -/var/log/syslog
local.*                         /var/log/haproxy.log

Kita  dapat    melakukan  pengetesan   terhadap load  balance   dan  failoverya.  Dengan  cara    akses   web   server   anda. 



Kategori

Kategori