Tutorial Load Balance Server (HAProxy) di Debian
Apa Itu Load Balancing?
Load Balancing adalah suatu jaringan komputer yang menggunakan metode untuk mendistribusikan beban kerjaan pada dua atau bahkan lebih suatu koneksi jaringan secara seimbang agar pekerjaan dapat berjalan optimal dan tidak overload (kelebihan) beban pada salah satu jalur koneksi.
Apa Itu HAProxy?
HAProxy adalah perangkat lunak opens source yang berfungsi sebagai load balancing dan proxy untuk protocol TCP dan HTTP.
Topologi yang Akan Digunakan
Terdapat beberapa metode yang biasa digunakan di Load Balancing
2. Least Connection: mendistribusikan trafik ke server yang paling sedikit koneksi aktifnya
3. IP Hash: mendistribusikan trafik ke server yang sama ketika visitor pertama
Installasi dan Konfigurasi Load Balance (HAProxy)
1) Sebelum memulai konfigurasi terlebih dahulu kita siapkan 3 server. 1 server untuk konfigurasi Load Balancing.
2) Kemudian setting untuk network di server Load Balance
b) Adapter 2 arahakan ke Host-Only Adapter, Adapter ini yang nantinya akan terhubung dengan client.
3) Kemudian Setting untuk network di server1 dan server2. Gunakan Adapter 1 dan arahkan ke Internal Network dengan name-nya adalah server. Agar server1 dan server2 terhubung dengan server load balance
…
auto enp0s3
iface enp0s3 inet static
address 192.168.28.254
netmask 255.255.255.0
auto enp0s8
iface enp0s8 inet static
address 192.168.10.1
netmask 255.255.255.0
auto enp0s9
iface enp0s9 inet dhcp
5) Kemudian restart networknya dengan mengetikkan perintah /etc/init.d/networking restart kemudian cek IP apakah sudah berhasil atau belum dengan mengetikkan perintah ip a
6) Kemudian buat DNS untuk server Load Balance. Di sini saya sudah install dan konfigurasi DNS dengan nama loadbalanceserver.net
untuk tutorial installasi dan konfigurasi DNS Server bisa klik ini
7) Kemudian install juga web server apache. Ketik perintah apt install apache2
8) Masuk ke file /etc/apt/source.list
nano /etc/apt/source.list
tambahkan daftar repository berikut:
deb http://kartolo.sby.datautama.net.id/debian/ buster-updates main contrib non-free
deb http://kartolo.sby.datautama.net.id/debian-security/ buster/updates main contrib non-free
9) Kemudian update server dengan perintah apt-get update
10) Lakukan installasi HAProxy. Ketik perintah apt install haproxy
kemudian tambahkan script berikut pada bagian paling bawah :
• menambahkan HAProxy listen
frontend http_front
bind *:80
mode htpp
default_backend backend_server
• Kemudian tambahkan konfigurasi untuk backend Web server
backend backend_server
mode http
balance roundrobin
option forwardfor
server web1 192.168.28.1:80 check
server web2 192.168.28.2:80 check
• Script berikut untuk menampilkan statistik dari HAProxy
listen stats
bind *:8080
stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth admin:123
stats uri /stats
Untuk lebih jelasnya bisa lihat gambar di bawah ini:
a) bind *:80 -> Mengarahkan seluruh akses ip dari port 80
b) mode http -> protocol yang akan diarahkan adalah protocol http (port 80)
c) default_backend backend_server -> kelanjutan dari konfigurasi frontend header menuju konfigurasi backend_server
d) balance roundrobin -> metode load balancing yang digunakan
e) server -> menjelaskan bahwa akses load balancing akan diarahkan menuju salah satu dari dua server tersebut
f) bind *:8080 -> alamat bind
g) stats auth admin:123 -> membuat usernam dan password agar bisa melihat statistik HAProxy
12) Setelah selesai konfigurasi, restart HAProxy dengan perintah /etc/init.d/haproxy restart
13) Konfigurasi untuk server Load Balance telah selesai, kemudian konfigurasi untuk server1 dan server2.
14) Konfigurasi IP terlebih dahulu
auto enp0s3
iface enp0s3 inet static
address 192.168.28.1
netmask 255.255.255.0
gateway 192.168.28.254
#server2
auto enp0s3
iface enp0s3 inet static
address 192.168.28.2
netmask 255.255.255.0
gateway 192.168.28.254
15) Restart konfigurasi IP dengan perintah /etc/init.d/networking restart dan cek ip dengan perintah ip a
Server1 |
Server2 |
16) selanjutnya ping ke IP server load balance pastikan sudah dapat terhubung dengan baik
17) Install web server apache pada server1 dan server2 dengan perintah apt install apache2
18) kemudian masuk di directory /var/www/html/ dan hapus file index.html
rm index.html -> menghapus file index.html
Lakukan hal yang sama pada server1 dan server2
19) Kemudian ketik perintah nano index.html di sini kita membuat file index.html yang baru
ketikkan script berikut ini:
<html>
<h1>WEB SERVER 1</h1>
</html>
#server2
<html>
<h1>WEB SERVER 2</h1>
</html>
20) Kemudian restart apache dengan perintah /etc/init.d/apache2 restart
21) Selanjutnya konfigurasi IP untuk client. masuk ke Network Connections dan konfigurasi IP pada ethernet Host-Only Adapater
Subnet Mask : 255.255.255.0
Default gateway : 192.168.10.1
Preferred DNS server : 192.168.10.1
22) Selanjutnya uji coba PING ke server load balance dan pastikan berhasil.
23) Kemudian buka browser dan ketikkan DNS Server Load balance atau IP Address load balance maka yang akan tampil adalah tampilan dari web server server1 atau 2. Coba untuk refresh berkali kali maka akan secara otomatis kita akan mengakses web server1 atau web server2 secara bergantian
24) Untuk melihat statistik haproxy bisa tambahkan :8080/stats di bagian belakang alamat web
contoh loadbalanceserver.net:8080/stats
Maka akan disuruh untuk memasukkan username dan password. Masukkan username dan password yang sudah dibuat pada langkah ke 12, yaitu username admin dan passwordnya 123
25) Jika berhasil masuk ke statistik HAProxy maka tampilannya akan seperti berikut ini
26) Kita uji coba dengan mematikan server1. kemudian refresh pada statistik HAProxy maka pada bagian web1 akan berwarna merah, itu tandanya server sedang tidak aktif.
27) dan coba kita akses lagi dengan memasukkan IP Server load balance atau DNS Server Load balance, maka yang terjadi adalah kita mengakses web server2, coba di refresh berkali kali maka yang tampil akan tetap web server2. karena web server1 sudah dimatikan
28) Konfigurasi Load Balance server dengan HAProxy telah selesai
Selamat Mencoba..!!
https://ae2d-114-10-17-218.ap.ngrok.io
ReplyDelete