Lab 8.19 Konfigurasi Reverse Proxy Pass Dengan Load Balance Nginx
Assalamu'alaikum Wr Wb,
Pada kesempatan kali ini, saya akan melanjutkan materi dari Web Server Nginx, yaitu Konfigurasi Reverse Proxy Pass dengan Load Balance.
Load Balance itu apa sih ?
Load Balance merupakan metode untuk membagi beban trafik kepada dua atau lebih jalur koneksi di jaringan. Hal ini berfungsi agar trafik berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap/respon dan meminimalisir terjadinya overload.
Pada Load Balance ini terdapat server controller yang digunakan untuk mengatur berapa beban yang ditanggung oleh server tertentu. Misalnya server A di konfigurasi untuk bisa menangani 3 request client, sedangkan server B menangani 1 request client, dan Server C berperan sebagai server backup yang akan aktif apabila server A dan B sedang Overload atau sedang dalam keadaan mati.
Pada postingan kali ini, saya membuat 4 server, dimana 1 server sebagai controller dan 3 server lainnya sebagai server yang akan dibalancing oleh controller.
Topologi :
Sekarang kita masuk ke tahap konfigurasi :
Konfigurasi Server Controller
Sebelum kita konfigurasi Load Balance, edit terlebih dulu file konfigurasi DNS pada zona forward dan juga reverse nya untuk menambahkan domain node1, node2, dan node3
1). Pertama, edit zona forward yang sudah kalian buat
nano /var/named/"namafilezonaforward"
nano /var/named/"namafilezonareverse"
dig "nama domain"
Keterangan :
- upstream digunakan untuk mendefinisikan sebuah cluster yang dapat direquest proxy. Ini biasa digunakan untuk menentukan cluster web server untuk load balancing
- backendivan merupakan penamaan dari cluster yang akan di balancing
- server merupakan pendefinisian server mana yang akan dibalancing, disini saya mengaturnya untuk server node1, node2, dan node3
- weight merupakan beban yang dapat ditanggung pada server tertentu
- backup berfungsi untuk menentukan server mana yang akan berperan sebagai backup pada saat server lainnya sedang overload atau sedang dalam keadaan mati
- proxy_pass_header yaitu identifikasi Nama server yang dicari di antara kelompok server yang ada, dan jika tidak ditemukan, maka akan ditentukan dengan menggunakan resolver.
6). Masih pada file konfigurasi Nginx, cari syntak location { kemudian tambahkan syntak seperti yang sudah saya tandai pada gambar dibawah
- proxy_pass digunakan untuk menentukan 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 backenivan
7). Kemudian restart service Nginx agar konfigurasi yang sudah dilakukan dapat berjalan
Konfigurasi Server Node1, Node2, dan Node3
Pengetesan/Verifikasi
Maka hasilnya pasti akan sesuai dengan yang sudah dikonfigurasi pada Server Controller, karena Node1 diatur agar bisa menampung bebab request client sebanyak 3 kali maka pada saat request ke 4, Server Controller akan mengarahkan request tersebut ke Node2, sedangkan server Node3 tidak akan digunakan, karena server Node3 hanya berperan sebagai backup yang hanya akan digunakan jika server lainnya sedang mati ataupun overload
2). Sekarang kita coba matikan server Node1
poweroff
Maka pasti akan muncul konten web dari Node 2, itu karena Node1 sedang mati, maka konten web akan dibebankan pada Node2. Sedangkan Node3 masih belum muncul karena server Controller menganggap masih ada server yang aktif dan kemudian request dari client akan diserahkan pada server tersebut
4). Sekarang matikan server Node2
Dan pada akhirnya Node3 digunakan juga. Hal ini dikarenakan Node1 dan Node2 sedang dalam keadaan mati, maka server Controller akan mencari Server Backup, yaitu Node3 dan kemudian akan menyerahkan request client kepada server Backup tersebut
6). Sekarang kita coba matikkan seluruh server Node, disini kita akan mematikan server Node terakhir, yaitu Node3
Dan berikut adalah video verifikasi jika semua server Node mati
Mungkin cukup sekian untuk postingan saya kali ini...
Wassalamu'alaikum Wr Wb.
Comments
Post a Comment