Lab 8.19. [CentOS7] Web Server [nginx] : Reverse Proxy Pass with Load Balance - Yord's Note

Latest

Catatan kecil seputar Informatika dan Umum

Monday, May 15, 2017

Lab 8.19. [CentOS7] Web Server [nginx] : Reverse Proxy Pass with Load Balance


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 :


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, kalian edit dulu zone forward pada named dns bind nya, disana kita akan menambahkan/mendaftarkan beberapa host baru untuk si server node1, node2, dan node3 nya.
nano /var/named/forward.dirham

tambahkan atau daftarkan beberapa nama host untuk si node-node, jangan lupa untuk menyesuaikan IP Address masing2 node dan berikan nama host sesuai node dan ip address nya.


2). lanjut lagi kita ke zone reverse nya untuk menangkap IP Address kedalam domain, berikut ini adalah perintahnya adalah :
nano /var/named/reverse.dirham

tambahkan dahulu nama host dan IP address nya, lalu dilanjutkan dengan menambahkan IP Address beserta nama domainnya seperti skrip berikut ini :


3). jangan lupa untuk merestart named nya untuk memperbarui konfigurasi named barusan.
systemctl restart named

4). masih pada server controller, silahkan coba test domain untuk masing2 node dengan perintah dig seperti berikut ini :
dig node1.dirham.net
dig node2.dirham.net
dig node3.dirham.net

5). masih pada server controller, saatnya kita edit file virtual host lagi, disana kita akan menambahkan skrip pendukung reverse proxy pass namun dengan implementasi Load Balance. berikut ini adalah perinahnya :
nano /etc/nginx/conf.d/dirham-vhost.conf

nah tambahin dah tuh skrip berikut ini yang sudah saya tandai, (jangan langsung save dulu ye, masih ada skrip yang harus ditambahin pada file ini)


Keterangan :
  1. upstream digunakan untuk mendefinisikan sebuah cluster yang dapat direquest proxy. Ini biasa digunakan untuk menentukan cluster web server untuk load balancing
  2. dirhambackend merupakan penamaan dari cluster yang akan di balancing
  3. server merupakan pendefinisian server mana yang akan dibalancing, disini saya mengaturnya untuk server node1, node2, dan node3
  4. weight merupakan beban yang dapat ditanggung pada server tertentu
  5. backup berfungsi untuk menentukan server mana yang akan berperan sebagai backup pada saat server lainnya sedang overload atau sedang dalam keadaan mati
  6. 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 yang sama, kali ini ane akan mengubah skrip proxy_pass yang tadinya single server node, sekarang ke 3 server node sekaligus, cuku kita tambahkan skrip dengan nama upstream yang sudah dibuat seperti berikut ini :

sebelum diubah.
setelah diubah.
Keterangan :

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 dirhambackend.

7). lalu jangan lupa untuk merestart nginx nya, untuk memperbarui konfigurasi barusan.
systemctl restart nginx

Konfigurasi : Server node1

1). edit file html pada masing2 node, berikut ini adalah pada server node1.



Konfigurasi : Server node2

2). edit juga file html pada node2 nya, harus beda ya dari node1.



Konfigurasi : Server node3

3). lakukan hal yang sama seperti pada node sebelumnya, edit file html dengan skrip yang berbeda dengan node-node lain.



Verifikasi Client

cobalah untuk mengakses domain virtual host pada domain dari server controller nya pada Web Browser di client. berikut ini adalah hasil dari akses domain www.yordan.id yaitu domain virtual host nya :

1). pertama mengakses domain www.yordan.id akan muncul konten html dari server node1.


2). dilanjutkan dengan merefresh, maka akan sama seperti awal mengakses. yaitu konten html nya masih sama yaitu tampilan dari server node1.


3). yang ketiga sama juga pas direfresh :v nongolnya konten html dari server node1. hal ini dikarenakan dari skrip weight untuk server node1. weight yang diberikan pada blok upstream dirhambackend untuk node1.dirham.net nya sebanyak 3, layaknya loadfactor pada load balance pada apache. maka hasilnya akan ditampilkan sebanyak 3 kali akses.


4). dilanjutkan dengan merefresh lagi, maka akan muncul konten html dari server node2 seperti berikut ini. konten html dari server node2 ini muncul setelah server node1, kenapa? karena weight terbanyak akan ditampilkan duluan oleh server controller. namun setelah direfresh lagi munculnya konten html dari server node1 lagi, lho kok konten html dari server node3 nya kaga ada? lha kan server node3 bersifat backup, kontennya baru akan muncul setelah seluruh kawan server node ataupun salah satu kawan server node nya mengalami down atau sedang mati, baru akan muncul dah tuh konten si server node3.


5). untuk menampilkan konten html si server node3, kita perlu matiin salah satu node, disini ane misalnya matiin server node1, berikut ini adalah perintah untuk matiin si server node1 nya :
init 0

6). masuk bentar ke server controller, ane lupa nambahin node3 pada proxy_pass_header nya, tambahin dulu yaw.


7). masuk lagi pada client, lalu refresh lagi, dan akan muncul konten html dari server node3.


No comments:

Post a Comment

Popular