Apa yang bisa kami bantu?

A. Pendahuluan

HAProxy adalah sebuah aplikasi opensource berbasis Linux yang biasa digunakan sebagai load balancing trafic jaringan. Load balancing adalah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi. Teknik balancing dapat menggunakan beberapa cara yang berbeda, tergantung kekompleksan yang ada.

HAProxy adalah solusi baik, sangat cepat dan andal yang menawarkan load-balancing, ketersediaan tinggi, dan proksi untuk aplikasi berbasis TCP dan HTTP. Ini sangat cocok untuk situs web dengan lalu lintas sangat tinggi dan memberdayakan banyak situs web yang paling banyak dikunjungi di dunia. Maka dari itu sangat penting untuk mengerti, apa yang sebenarnya dibutuhkan jaringan sebelum membuat keputusan melakukan konfigurasi load balancer.

Berikut adalah diagram dari Konfigurasi HAProxy Load Balancer nya:

Gambaar 1. Topologi HA

 

B. Konfigurasi

Kami akan menggunakan tiga VM yang dapat dibuat dari Gio Cloud atau Neo Cloud

Instance 1 - Load Balancer

  • Hostname: HAProxy
  • OS: Ubuntu
  • Private IP: 192.168.100.11
  • IP Public: 103.93.55.118

 

Instance 2 - Web Server 1

  • Hostname: VM-Webserver-A
  • OS: Ubuntu sudah di install Apache
  • Private IP: 192.168.100.7

 

Instance 3 - Web Server 2

  • Hostname: VM-Webserver-B
  • OS: Ubuntu sudah di install Apache
  • Private IP: 192.168.100.24

 

Berikut adalah diagram dari Konfigurasi HAProxy Load Balancer nya

Gambar 2. Topologi HA

 

C. Instalasi

Langkah 1  

Konfigurasi pada ( VM HAProxy )

Sebelum memulai instalasi, kami merekomendasikan untuk mengupdate system dengan versi terbaru terlebih dahulu.

apt-get update

 

Langkah 2

Install HAProxy

apt-get install haproxy

Cek versi dari HAPorxy

haproxy -v

 

 

Kita perlu mengaktifkan HAProxy untuk memulai dengan skrip init /etc/default /haproxy. Setel opsi ENABLED ke 1 sebagai berikut:

Gambar 3. Enabled 1 

Untuk memverifikasi apakah perubahan ini dilakukan dengan benar, jalankan skrip init HAProxy tanpa parameter apa pun. Anda harus melihat yang berikut ini:

systemctl status haproxy

 

Langkah 3

1. Konfigurasi HAProxy 

Tinjau file konfigurasi default di /etc/haproxy/haproxy.cfg, yang dibuat secara otomatis selama instalasi. File ini mendefinisikan pengaturan standar tanpa load balancing:

cat /etc/haproxy/haproxy.cfg

 

Gambar 4. haproxy.cfg

Bagian global mendefinisikan parameter tingkat sistem seperti lokasi file dan pengguna serta grup tempat HAProxy dijalankan. Dalam kebanyakan kasus, Anda tidak perlu mengubah apa pun di bagian ini. Pengguna haproxy dan grup haproxy keduanya dibuat selama instalasi.

Bagian default mendefinisikan parameter logging tambahan dan opsi yang terkait dengan timeout dan kesalahan. Secara default, pesan normal dan kesalahan akan dicatat.

2. Konfigurasi Load Balancing 

Saat Anda mengkonfigurasi load balancing menggunakan HAProxy, ada dua jenis node yang perlu didefinisikan: frontend dan backend. Frontend adalah simpul di mana HAProxy mendengarkan koneksi. Node backend adalah yang digunakan HAProxy untuk meneruskan permintaan. Jenis simpul ketiga, simpul statistik, dapat digunakan untuk memantau penyeimbang beban dan dua simpul lainnya.

Buka /etc/haproxy/haproxy.cfg di teks editor dan tambahkan konfigurasi untuk front end:

nano /etc/haproxy/haproxy.cfg

frontend
haproxynode
 bind *:80
 mode http
 default_backend
backendnodes

 

Gambar 5. haproxy.cfg frontend

Blok konfigurasi ini menentukan node frontend bernama haproxy node, yang terikat pada semua antar muka jaringan pada port 80. Ia akan mendengarkan koneksi HTTP (dimungkinkan untuk menggunakan mode TCP untuk tujuan lain) dan akan menggunakannodes back end.

Tambahkan konfigurasi pada sisi backend 

nano /etc/haproxy/haproxy.cfg

backend
backendnodes
 balance
roundrobin
 option
forwardfor
 http-request
set-header X-Forwarded-Port %[dst_port]
 http-request
add-header X-Forwarded-Proto https if { ssl_fc }
 option
httpchk HEAD / HTTP/1.1\r\nHost:localhost
 server node1
192.168.100.7:80 check
 server node2
192.168.100.24:80 check

Gambar 6. haproxy.cfg backend

  

 Tambahkan optional status node pada konfigurasinya 

nano /etc/haproxy/haproxy.cfg

listen stats
 bind :32700
 stats enable
 stats uri /
 stats
hide-version
 stats auth
someuser:password

 

Gambar 7.  haproxy.cfg

 

Berikut adalah file konfigurasi lengkap setelah modifikasi:

Gambar 8.  Full Config haproxy.cfg

 

 Restart HAProxy untuk mendapatkan konfigurasi yang barunya 

systemctl restart haproxy

 

Sekarang, setiap permintaan yang masuk ke simpul HAProxy di alamat IP 103.93.55.118 akan diteruskan ke simpul jaringan internal dengan alamat IP 192.168.100.7 atau 192.168.100.24. Node backend ini akan melayani permintaan HTTP. Jika sewaktu-waktu salah satu dari simpul ini gagal dalam pemeriksaan kesehatan, mereka tidak akan digunakan untuk melayani permintaan apa pun sampai mereka lulus tes.

Untuk melihat statistik dan memantau kesehatan node, navigasikan ke alamat IP atau nama domain dari node frontend di browser web di port yang ditugaskan, mis., Http://103.93.55.118:32700. Ini akan menampilkan statistik seperti berapa kali permintaan diteruskan ke simpul tertentu serta jumlah sesi saat ini dan sebelumnya yang ditangani oleh simpul frontend.

Gambar 8. Tampilan HA

 

D. Uji Coba

Saat ini konfigurasi HAProxy telah selesai dan kita coba akses website menggunakan IP Http://103.93.55.118 untuk melihat hasilnya

Hasil Pertama

Gambar 9. Hasil 1

Hasil Kedua setelah di refresh browser

Gamba 10. Hasil 2


 

Saat ini kita coba untuk menonaktifkan webserver B dan lihat pada statistic

Gambar 11. Uji Coba

 

Lalu kita coba jalankan kembali untuk webserver B 

Gambar 12. Uji Coba

 

Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silahkan hubungi support@biznetgio.com.