menjaga kestabilan server featured image

Jaga Kestabilan Server dengan Load Balancing HAProxy Nginx di CentOS 7

Memiliki banyak pengunjung hingga peningkatan traffic adalah hal yang diharapkan oleh para pemilik website. Namun, banyaknya pengunjung berbanding lurus dengan permintaan atau request pada server yang semakin bertambah.

Oleh karena itu kestabilan server diperlukan agar dapat memenuhi permintaan para pengunjung. Di artikel ini, kamu akan mengetahui cara menjaga kestabilan server menggunakan load balancing HAProxy Nginx di CentOS 7.

Load Balancing

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

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

HAProxy

HAProxy atau High Availability Proxy adalah open source TCP dan 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. HAProxy kini termasuk dalam salah satu load balancer populer saat ini.

Sebagai penjelasan tambahan, baca dahulu artikel kami tentang proxy.

Konsep HAProxy

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

Algoritma

Ada beberapa algoritma yang digunakan oleh HAProxy dalam menerima permintaan pengunjung:

  • Roundrobin

    Algoritma yang paling sederhana, HAProxy akan mengambil dan menyeimbangkan source setara pada server yang tersedia.

  • Lastconn

    Jika ada koneksi akan ditangani oleh backend server dengan jumlah koneksi paling sedikit, atau sederhananya HAProxy akan mengambil jumlah koneksi yang paling sedikit.

  • Source

    IP client akan di-hash agar dapat menentukan server backend yang menerima permintaan terakhir dari IP pengunjung tersebut. Jadi, jika ada pengunjung melakukan request nantinya akan diterima oleh salah satu server secara bertahap, tidak dipindah-pindah sesinya sampai sesi tersebut berakhir.

Pada tutorial ini kami akan menggunakan algoritma Round Robin.

Load Balancing HAProxy Nginx di CentOS 7

Sebelum menggunakan Load Balancing HAProxy Nginx di CentOS 7, perhatikan beberapa hal berikut:

Persiapan

Sebelum memulai instalasinya, pastikan kamu sudah memenuhi syarat berikut.

  • Memiliki 3 VPS dan Domain yang aktif.
  • Memiliki akses root ke VPS.

Persyaratan

Note: 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: Menjadi IT Support: Job Desk dan Skill

Konfigurasi HAProxy Load Balancer

Berikut ini beberapa langkah konfigurasinya:

Update Server

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

 

$ yum update -y

$ reboot

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).

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

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

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

Testing

Akses LoadBalancer 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:

[[email protected] ~]# curl 103.xxx.xxx.188

<h1>srv2.loadbalancer</h1>

[[email protected] ~]# 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 tamplannya sudah seperti gambar di atas, artinya proses menjaga kestabilan server menggunakan load balancing sudah berhasil.

Simpulan

Menjaga kestabilan server dengan load balancing HAProxy Nginx di CentOS 7 memang pilihan yang tepat saat kamu mulai khawatir dengan traffic pada website hingga menyebabkan resource pada server kamu hampir melewati batas. Pemilihan algoritma pada konfigurasi HAProxy untuk menjaga kestabilan server dapat disesuaikan dengan kebutuhan kamu.

Namun, kalau kamu berniat untuk mengganti server, mungkin kamu dapat mempertimbangkan Dewaweb jika membutuhkan server yang cepat, aman, dan selalu dapat diandalkan.

Dewaweb juga tak cuma menyediakan VPS server dan hosting murah berkualitas. Saat mengalami kendala, kamu bisa selalu bertanya ke Ninja Support Dewaweb yang selalu siap membantu kapan pun di mana pun selama 24 jam non stop! Kunjungi halaman VPS Dewaweb untuk informasi lebih lanjut.

Demikian artikel cara menjaga kestabilan server dengan load balancing ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!