[CentOS 7] [8.19] Reverse Proxy Pass Dengan Load Balance Nginx

Konfigurasi Reverse Proxy Pass dengan Load Balance Pada Web Server Nginx


Assalamu'alaikum Wr Wb

Yap, bertemu lagi dengan saya Dimas Trihandika selaku Admin dari blog ini.
Setelah sebelumnya saya telah posting kurang lebih 7 artikel mengenai Web Server Nginx, Pada kesempatan kali ini saya masih memposting tutorial yang berkaitan dengan Web Server Nginx, yaitu tutorial Konfigurasi Reverse Proxy Pass dengan Load Balance yang sepertinya ini akan menjadi lab terakhir tentang Web Server.

Sebelumnya, Apa itu load balance?
Load Balance adalah metode untuk membagi beban trafik pada dua atau lebih jalur koneksi. Hal ini berfungsi agar trafik berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan meminimalisir terjadinya overload.

Pada Load Balance ini terdapat server controller yang digunakan untuk mengatur berapa beban yang ditanggung terhadap server tertentu. Misalnya server A di konfigurasi untuk bisa menangani 3 request client, sedangkan server B menangani 1 request klien, dan Server C sebagai server backup apabila server A dan B sedang Overload atau dalam kondisi mati.

Pada postingan kali ini saya membuat 4 server yang dimana 1 sebagai controller dan 3 sisanya sebagai server yang akan dibalancing oleh controller

Topology :



Berikut cara konfigurasinya

Konfigurasi Server


Sebelum konfigurasi Load Balance, edit terlebih dahulu file konfigurasi DNS pada zona forward dan juga zona reverse untuk menambahkan domain node1, node2 dan node3

1) Pertama edit terlebih dahulu zona forward yang sudah kalian buat
nano /var/named/"forward zone name"

Tambahkan syntak seperti yang sudah saya tandai pada gambar dibawah ini, sesuaikan IP node1 node2 dan juga node3


2) Setelah itu, edit pula zona reversenya
nano /var/named/"reverse zone name"

Tambahkan syntak yang sudah saya tandai pada gambar dibawah ini, sesuaikan ip dan domain node1, node2, dan node 3


3) Restart sevice DNS agar konfigurasi yang baru berjalan dengan baik
systemctl restart named

4) Lakukan perintah dig untuk pengetesan domain node1, node2 dan node3
dig "nama domain"

5) Edit file konfigurasi Web Server Nginx. Disini saya mengeditnya pada file Virtual Host yang sudah saya buat pada lab sebelumnya


6) Tambahkan syntak seperti yang sudah saya tandai pada gambar dibawah ini

  • upstream digunakan untuk mendefinisikan sebuah cluster yang dapat request proxy. Ini biasa digunakan untuk menentukan cluster web server untuk load balancing
  • banckendimas yaitu penamaan saja dari cluster yang akan di balancing
  • server merupakan pendefinisian server mana saja yang akan dibalancing, disini saya mengaturnya untuk node1, 2, dan 3
  • weight merupakan beban yang dapat ditanggung pada server tertentu
  • backup berfungsi sebagai server mana yang berperan sebagai backup pada saat server yang lainnya sedang overload ataupun tidak aktif
  • proxy_pass_header yaitu identifikasi Nama server yang dicari di antara kelompok server yang ada, dan jika tidak ditemukan, ditentukan dengan menggunakan resolver. 

7) Masih di file konfigurasi Nginx, cari syntak location { kemudian tambahkan syntak seperti yang sudah saya tandai pada gambar dibawah ini. Atur pelatakannya sebelum tanda kurawal tutup ("}")

  • proxy_pass digunakan untuk menetapkan alamat server proxied dan URI ke lokasi mana yang akan dipetakan. Lokasi yang dimaksud dapat berupa Cluster, Domain ataupun IP Address. Pada gambar diatas saya mengaturnya ke cluster upstream backendimas

8) Restart Service nginx agar konfigurasi yang baru berjalan


Konfigurasi Server Node1, Node2 dan Node3


Edit konten Web Pada node1, node2 dan node3 untuk pembuktian

1) Edit konten web node1


2) Lakukan hal yang sama pada node2


3) Begitu pula pada node3


Pengetesan


1) Lakukan pengetsan pada Web Browser client dengan cara mengakses Server Controller


Maka hasilnya akan sesuai dengan yang sudah dikonfigurasi pada server controller, karna node1 diatur untuk menampung beban request client sebanyak 3 kali maka pada saat request ke 4, controller akan mengarahkan ke node2, sedangkan server node3 tidak akan digunakan, karna dia berperan sebagai backup yang hanya akan digunakan pada saat server lainnya sedang down atau tidak aktif

2) Sekarang coba matikan server node1
poweroff

3) Kemudian akses kembali server controller pada web browser client



Karna node1 mati, maka konten web akan dibebankan pada node2, sedangkan node 3 masih belum digunakan, karna server balancing (controller) menganggap masih ada server yang aktif dan kemudian request client akan diserahkan pada server tersebut.

4) Nah sekarang coba matikan server node2
poweroff

5) Setelah itu, akses kembali server controller pada web browser client


Pada saat ini lah server backup (node3) digunakan. Karena node1 dan node2 mati, maka server balancing (controller) akan mencari server backup dan menyerahkan request client pada server backup tersebut.

6) Lantas bagaimana jika semua server mati? jika ingin tahu coba matikan server node3nya
poweroff

7) Jika semua server mati, pada saat client mengakses, maka outputnya akan seperti ini


Ga percaya? liat video ini



Mungkin sampai sini saja untuk postingan kali ini

Sekian dan Semoga Bermanfaat

Comments