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
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:
- 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
- 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:
[su_button url=”https://www.dewaweb.com/domain?utm_source=Blog&utm_medium=blog-btn&utm_id=dwblog” target=”blank” background=”#F16522″ size=”7″ center=”yes” radius=”5″ title=”Cek Promo Dewaweb” id=”.blog-btn” class=”blog-btn”]Beli Domain Murah[/su_button]
[su_button url=”https://www.dewaweb.com/hosting?utm_source=Blog&utm_medium=blog-btn&utm_id=dwblog” target=”blank” background=”#F16522″ size=”7″ center=”yes” radius=”5″ title=”Cek Promo Dewaweb” id=”.blog-btn” class=”blog-btn”]Beli Hosting Murah[/su_button]
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!