Cara Konfigurasi HAProxy Sebagai Load Balancer di CentOS 7

Cara Konfigurasi HAProxy Sebagai Load Balancer di CentOS 7

HAProxy adalah salah satu load balancer yang baik untuk website dengan traffic tinggi. Load balancing ini perlu dilakukan untuk menghindari terjadinya down saat website diakses banyak pengunjung sehingga kestabilan server tetap terjaga.

Di artikel ini, kamu akan mengetahui apa itu load balancing, metode load balancing, hingga cara konfigurasi/setting load balancing HAProxy Nginx di CentOS 7. Langsung simak, ya.

Baca Juga: Apa itu Server Pengertian, Fungsi dan Jenis Aplikasi Server

Apa itu HAProxy?

High Availability Proxy (HAProxy) adalah salah satu load balancer terpopuler saat ini. HAProxy adalah open source TCP, HTTP load balancer, dan proxy server software.

HAProxy ditulis dalam bahasa C oleh Willy Tarreau yang didukung oleh SSL, keep-alive custom log format, dan header writing. HAProxy adalah salah satu software yang cepat dan telah digunakan oleh website terkenal, seperti Github, StackOverflow, Reddit, Tumblr, dan Twitter.

Baca Juga: Mengenal Apa Itu Proxy: Sistem Pengaman Saat Berinternet

HAProxy dapat berjalan pada 2 mode; TCP layer 4 dan HTTP layer 7. Pada TCP layer 4, HAProxy melakukan forward RAW packet TCP dari client ke application server. Pada HTTP layer 7, HAProxy melakukan parsing HTTP Header sebelum melakukan forwarding ke application server.

Baca Juga: Cara Membuat Symlink di cPanel Hosting dengan 2 Cara

Apa itu Load Balancing?

Load balancing adalah salah satu metode untuk mendistribusikan traffic ke beberapa server agar tidak membebani satu server saja. Gunanya agar kinerja server menjadi seimbang dan menghindari terjadinya overload.

Lantas, apa alasan kita harus menggunakan load balancing pada server web? Tentu saja agar website kita tidak mengalami down ketika terjadi lonjakan traffic. Jadi, traffic akan diurai oleh load balancer sehingga tidak menumpuk di satu server saja.

Baca Juga: Load Balancing: Penjelasan dan Manfaatnya Bagi Server

haproxy adalah load balancer untuk menjaga kestabilan website

Baca Juga: Menjadi IT Support: Job Desk dan Skill

Apa saja metode load balancing? Setidaknya terdapat lima (5) metode yang menggunakan berbagai algoritma berbeda, yakni Round Robin, Least Connection, Least Response Time, Least Bandwidth, dan IP Hash.

  • Round Robin: Ini adalah algoritma yang paling sederhana. Cara kerjanya adalah merotasi server dengan mengarahkan trafik ke server pertama yang tersedia. Trafik berikutnya akan diarahkan ke server kedua, dan begitu seterusnya tergantung jumlah server yang tersedia.
  • Least Connection: Ini adalah metode yang bekerja dengan mendistribusikan permintaan ke server dengan jumlah koneksi paling kecil untuk menghindari overload.
  • Least Response Time: Saat terjadi permintaan data, metode ini menginstruksikan load balancer untuk akan mengarahkan trafik ke server dengan koneksi aktif terkecil namun waktu responnya paling cepat.
  • Least Bandwidth: Pada metode ini, load balancer akan mendistribusikan permintaan akses data kepada server dengan jumlah trafik paling sedikit dalam ukuran megabit per detik/second (Mbps).
  • IP Hash: Pada metode ini, permintaan akses data ke sebuah server ditentukan melalui berbagai data yang berhubungan dengan IP, di antaranya alamat IP destinasi, port number, URL, sampai nama domain.

Pada tutorial di artikel ini akan menggunakan algoritma Round Robin.

Baca Juga: Mengenal Google Search Console dan Kegunaannya untuk SEO Website

Cara Konfigurasi Load Balancing HAProxy Nginx di CentOS 7

Berikut ini adalah langkah-langkah konfigurasi load balancer di CentOS 7. Namun sebelum itu, pastikan kamu sudah memenuhi syarat berikut:

Prasyarat

  • Memiliki akses root ke VPS.

Catatan penting: di artikel ini kami menyamarkan alamat IP menjadi “xxx”, nantinya kamu harus mengubah segala pengaturan IP dengan alamat IP kamu.

  • VPS 1 sebagai Load Balancer
    103.xxx.xxx.188
  • VPS 2 sebagai Web Server 1 (srv1)
    103.xxx.xxx.39
  • VPS 3 sebagai Web Server 2 (srv2)
    103.xxx.xxx.45

Baca Juga: Panduan Konfigurasi Firewall Ubuntu dengan UFW

Berikut ini beberapa langkah konfigurasinya:

1. Update Server

  • Update server dan reboot supaya packages yang tersedia di repositories sudah up-to-date.

 

$ yum update -y

$ reboot

2. Configure etc/hosts

 

  • Login sebagai root ke Load Balancer.

 

  • Edit etc/hosts untuk menambahkan hostname dari srv1 dan srv2 supaya dikenali oleh Load Balancer.

 

$ nano /etc/hosts

 

  • Tambahkan hostname srv1 dan srv2:

103.xxx.xxx.39  srv1.loadbalancer        srv1

103.xxx.xxx.45  srv2.loadbalancer        srv2

 

  • Save dan Exit.

 

  • Login sebagai root ke srv1 dan srv2

 

$ nano /etc/hosts

103.xxx.xxx.188 loadbalancer

 

  • Lakukan settingan di atas pada kedua web server (srv1 dan srv2).

3. Instal & Konfigurasikan HAProxy

  • Login sebagai root ke Load Balancer
  • HAProxy sudah tersedia pada repositori CentOS 7, kemudian ke directory HAProxy dan backup file konfigurasi aslinya.

 

$ yum install haproxy -y

$ cd /etc/haproxy/

$ mv haproxy.cfg haproxy.cfg.original

 

  • Buat file konfigurasi haproxy yang baru.

 

$ nano haproxy.cfg

 

  • Gunakan konfigurasi di bawah ini.

 

#———————————————————————

# Global settings

#———————————————————————

global

    log         127.0.0.1 local2     #Log configuration

 

    chroot      /var/lib/haproxy

    pidfile     /var/run/haproxy.pid

    maxconn     4000

    user        haproxy             #Haproxy running under user and group “haproxy”

    group       haproxy

    daemon

 

    # turn on stats unix socket

    stats socket /var/lib/haproxy/stats

 

#———————————————————————

# common defaults that all the ‘listen’ and ‘backend’ sections will

# use if not designated in their block

#———————————————————————

defaults

    mode                    http

    log                     global

    option                  httplog

    option                  dontlognull

    option http-server-close

    option forwardfor       except 127.0.0.0/8

    option                  redispatch

    retries                 3

    timeout http-request    10s

    timeout queue           1m

    timeout connect         10s

    timeout client          1m

    timeout server          1m

    timeout http-keep-alive 10s

    timeout check           10s

    maxconn                 3000

 

#———————————————————————

#HAProxy Monitoring Config

#———————————————————————

#listen haproxy3-monitoring *:8080                #Haproxy Monitoring run on port 8080

#bind haproxy3-monitoring *:8080

listen stats

bind *:8080

    mode http

    option forwardfor

    option httpclose

    stats enable

    stats show-legends

    stats refresh 5s

    stats uri /stats                             #URL for HAProxy monitoring

    stats realm Haproxy\ Statistics

    stats auth admin:p4ssadmin            #User and Password for login to the monitoring dashboard

    stats admin if TRUE

    default_backend app-main                    #This is optionally for monitoring backend

 

#———————————————————————

# FrontEnd Config

#———————————————————————

frontend main

    bind *:80

    option http-server-close

    option forwardfor

    default_backend app-main

 

#———————————————————————

# BackEnd roundrobin as balance algorithm

#———————————————————————

backend app-main

    balance roundrobin                                     #Balance algorithm

    option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost    #Check the server application is up and healty – 200 status code

    server srv1 103.xxx.xxx.39:80 check                 #srv1

    server srv2 103.xxx.xxx.45:80 check                 #srv2

 

  • Simpan hasil konfigurasi dan Exit.

Baca Juga: Cara Membuat Website Single Page

4. Configure Rsyslog

  • Di sini kami akan melakukan konfigurasi rsyslog daemon untuk logging pada statistik HAProxy, edit rsyslog.conf dan aktifkan UDP port 514 agar dapat digunakan oleh rsyslog. 

 

$ nano /etc/rsyslog.conf

 

Hapus tanda “#” pada perintan dibawah ini:

#module(load=”imudp”) # needs to be done just once

#input(type=”imudp” port=”514″)

 

  • Save lalu Exit.

 

  • Setelah itu buat konfigurasi haproxy untuk rsyslog.

 

$ cd /etc/rsyslog.d/

$ nano haproxy.conf

 

  • Tempel (paste) konfigurasi di bawah ini ke dalam file haproxy.conf.

 

local2.=info     /var/log/haproxy-access.log    #For Access Log 

local2.notice    /var/log/haproxy-info.log      #For Service Info – Backend, loadbalancer

 

  • Simpan dan keluar.

 

  • Restart rsyslog dan start haproxy.

 

$ systemctl restart rsyslog

$ systemctl start haproxy

 

  • Tambahkan haproxy untuk start on-boot.

 

$ systemctl enable haproxy

5. Instal dan Konfigurasikan Nginx

  • Login sebagai root ke srv1 dan srv2

 

$ yum install epel-release -y

$ yum install nginx -y

 

  • Setelah Nginx terinstal di srv1 dan srv2, kunjungi direktori web lalu ubah index file untuk melihat hasil load balancer pada kedua server tersebut. 

 

$ cd /usr/share/nginx/html/

$ echo “<h1>srv1.loadbalancer</h1>” > index.html     #untuk srv1

$ echo “<h1>srv2.loadbalancer</h1>” > index.html     #untuk srv2

 

  • Kemudian, tambahkan Nginx untuk start on-boot lalu start Nginx.

 

$ systemctl enable nginx

$ systemctl start nginx

 

  • Lakukan langkah “Configure Nginx” ini pada kedua server.

Baca Juga: Hindari 4 Kesalahan Saat Membuat Website

6. Testing

  • Akses Load Balancer dengan IP: 103.xxx.xxx.188, maka akan seperti di bawah ini dengan algoritma Round Robin:

menjaga kestabilan server load balancer server 1
menjaga kestabilan server load balancer server 2

  • Jika pengecekan menggunakan c:

[root@server-dewiweb ~]# curl 103.xxx.xxx.188

<h1>srv2.loadbalancer</h1>

[root@server-dewiweb ~]# curl 103.xxx.xxx.188

<h1>srv1.loadbalancer</h1>

 

  • Kamu juga bisa melihat statistik pada HAProxy Web Monitoring dengan URL: http://103.xxx.xxx.188:8080/stats

menjaga kestabilan server haproxy web stats

  • Jika tampilannya sudah seperti gambar di atas, artinya proses menjaga kestabilan server menggunakan load balancing sudah berhasil.

Baca Juga: Mau Jadi Front End Developer? Ini Skill yang Perlu Dikuasai!

Simpulan

HAProxy adalah salah satu load balancer terpopuler yang berfungsi untuk menjaga kestabilan server. Load balancer berguna untuk melakukan load balancing dengan membagi traffic ke beberapa server sehingga tidak menumpuk pada satu server saja.

Menggunakan HAProxy adalah pilihan yang tepat saat kamu mulai khawatir dengan traffic website yang tinggi hingga menyebabkan resource pada server kamu hampir melewati batas. Pemilihan algoritma pada konfigurasi HAProxy untuk menjaga kestabilan server juga dapat disesuaikan dengan kebutuhan kamu.

Jika kamu berniat untuk pindah ke server yang lebih cepat, aman, dan selalu dapat diandalkan, kamu dapat mempercayakannya pada Dewaweb. Selain itu, Dewaweb juga menyediakan layanan VPS server, hosting murah berkualitas, dan berbagai domain murah, lho! Langsung klik tombol di bawah:

 

Tenang saja, jika mengalami kendala, Ninja Support Dewaweb selalu siap membantu kapanpun dan di manapun selama 24 jam non stop! Demikian artikel ini, semoga bermanfaat, ya!

Kamu juga bisa membaca kumpulan artikel informatif lainnya di blog Dewaweb. Jika tertarik, kamu juga dapat mengikuti program afiliasi dari Dewaweb ataupun webinar gratis dari Dewatalks. Salam sukses!