Konfigurasi Load Balance dengan Nginx di RHEL/Centos 8

Apa itu loadbalance? Load Balance adalah metode pendistribusian trafik ke beberapa node agar sesuai seimbang atau sesuai dengan keinginan kita. Contohnya seperti gambar di bawah ini

Untuk LoadBalance kali ini saya menggunakan 3 server. Berikut topologinya

  1. Server LoadBalance(Nginx) : 172.23.0.46
  2. Server1 Web Server Apache : 172.23.0.194
  3. Server2 Web Server Apache: 172.23.0.201

Konfigurasi LoadBalance di Nginx

Install Nginx

yum -y install nginx

Menjalankan dan Mengaktifkan Layanan Nginx

systemctl start nginx
systemctl enable nginx

Buat konfigurasi baru untuk loadbalance

vim /etc/nginx/nginx.conf
.....
##Tambahkan di baris baru di di dalam konfigurasi http
##Untuk nama upstream bebas disini saya menamainya dengan lb
.....
http {
    upstream lb {
        server 172.23.0.194; ##IP Server2
        server 172.23.0.201; ##IP Server3
}
    server {
        listen       80;
        server_name  172.23.0.46;
        include /etc/nginx/default.d/*.conf;
        location / {
                proxy_pass http://lb;
        }
}
}
.....

Setelah itu restart service pastikan tidak ada yang error, dengan menggunakan perintah nginx -t

nginx -t
systemctl restart nginx

Menambahkan Rule Firewall(Jika ada)

firewall-cmd --add-service=http --permanenet
firewall-cmd --reload

Jika SElinux nya aktif bisa mengubah konfigurasi

setsebool -P httpd_can_network_connect on

Konfigurasi Web Server di Server1

Install Apache2

yum install httpd 

Menjalankan dan Mengaktifkan Layanan Apache

systemctl start httpd
systemctl enable httpd

Konfigurasi Web Sederhana

Untuk isi konten disini saya bedakan agar kita tahu mana server 1 dan server2

echo "SERVER1" > /var/www/html/index.html

Restart Apache

systemctl restart httpd

Konfigurasi Web Server di Server2

Sama seperti tadi perbedaannya hanya di konten index websitenya

echo "SERVER2" > /var/www/html/index.html

Menambahkan Rule Firewall di kedua server(Jika ada)

firewall-cmd --add-service=http --permanenet
firewall-cmd --reload

Melakukan pengujian

Leave a Reply

Your email address will not be published. Required fields are marked *