Monday, May 15, 2017

[CentOS 7] LAB 8.19 Reverse Proxy Pass with Loadbalance (Nginx Web Server)

Assalamuallaikum 
WarahmatullahiWabarakatuh.

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

Selamat sore semua, ketemu lagi dengan ane. Pada kesempatan kali ini ane mau sharing mengenai konfigurasi reverse proxy pass with loadbalance, sebelumnya ane sudah pernah sharing konfigurasi hal serupa menggunakan Apache Web Server disini.


Jadi loadbalance ini suatu cara untuk membagi beban trafik pada dua atau lebih jalur koneksi secara seimbang. Hal ini berfungsi agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi. Dengan menggunakan cara loadbalance ini kita dapat membuat server bekerja menjadi bergantian sesuai dengan hak akses berdasarkan request yang diberikan. Dan untuk konfigurasi yang dilakukan kali ini hanya meneruskan konfigurasi lab sebelumnya, hanya saja pada konfigurasi kali ini kita perlu menambahkan 2 server node. Jadi kita memiliki 3 server node, yang 2 server berfungsi sebagai backends dan yang 1 servernya berfungsi sebagai backup.

Untuk topologi yang ane gunakan adalah sebagai berikut.


Setting IP Address dan Hostname Server Node2

1.) Setting IP Address untuk server node2 nya, disini IP Address yang ane gunakan untuk server node2 nya adalah 172.16.11.124/24 dan untuk DNS nya tetap diarahkan ke IP Address server controller yaitu 172.16.11.122.



2.) Kemudian setting Hostname untuk server node2 nya, disini Hostname yang ane gunakan untuk server node2 nya adalah Node2Rizky.


Setting IP Address dan Hostname Server Node3

1.) Kemudian setting IP Address untuk server node3 nya, disini IP Address yang ane gunakan untuk server node3 nya adalah 172.16.11.222/24 dan untuk DNS nya masih tetap diarahkan ke IP Address server controller yaitu 172.16.11.122.



2.) Kemudian setting Hostname untuk server node3 nya, disini Hostname yang ane gunakan untuk server node3 nya adalah Node3Rizky.


Konfigurasi Server Controller

1.) Edit file zone forward yang berada di server controller. Untuk letak file nya berada di directory /var/named/. Untuk membuka file bisa menjalankan command 
nano /var/named/"namafilenya"

Kemudian tambahkan domain untuk server node2 dan node3 nya seperti gambar yang di blok berwarna biru.


2.) Dan, edit juga edit file zone reverse yang berada directory yang sama, yaitu di directory /var/named/. Untuk membuka file bisa menjalankan command 
nano /var/named/"namafilenya"

Lalu tambahkan script seperti yang sudah ane tandain blok berwarna biru, sesuaikan nama domain dan juga IP nya untuk node2 dan node3 .



3.) Supaya domain berhasil dibuat dan berjalan dengan baik, kita perlu merestart named nya dengan menjalankan command 
systemctl restart named


4.) Kemudian kita test domain yang tadi dibuat untuk node2 nya berhasil dibuat atau tidak dengan menjalankan perintah 
dig "namadomain"

Jika muncul tampilan seperti gambar diatas, maka dapat dipastikan domain sudah berhasil dibuat dan berjalan dengan baik.


5.) Dan juga test domain yang tadi dibuat untuk node3 nya berhasil dibuat atau tidak dengan menjalankan perintah 
dig "namadomain"

Jika tampilannya sama seperti gambar diatas, maka dapat dipastikan domain berhasil dibuat dan berjalan dengan baik.


6.) Setelah itu edit untuk menambahkan konfigurasi proxy pass with loadbalancenya, karena disini ane menggunakan dua nama domain, maka ane edit di file Virtual Host. Untuk file tersebut terletak di directory /etc/nginx/conf.d/. Untuk membuka file Virtual Host bisa menjalankan command 
nano /etc/nginx/conf.d/vhost.conf


7.) Kemudian tambahkan script seperti yang ane blok berwarna biru, disini konfigurasi yang ditambahkan berupa server backends dan server backup. Yang ditugaskan untuk server backends adalah node1 dan node2 dan yang bertugas untuk server backup adalah node3. Kemudian pada proxy_pass_header jangan lupa tambahkan node2 supaya server node2 dapat bertugas menjadi backends.


Keterangan :
  • upstream : Untuk mendefinisikan sebuah cluster yang dapat direquest proxy. Ini biasa digunakan untuk menentukan cluster web server untuk load balancing 
  • backends : Penamaan dari cluster yang akan di balancing, untuk penamaan bebas mau dinamakan apa saja, asalkan nanti nama nya sesuai dengan proxy_pass nya
  • server : Pendefinisian server mana yang akan dibalancing, disini ane mengatur untuk server node1, node2, dan node3 
  • weight : Merupakan beban yang dapat ditanggung pada server tertentu, jadi seperti jumlah refresh yang dimilik setiap server, jika weight (jumlah refresh) habis, maka akan ganti atau di loadbalancing ke server lainnya
  • backup : Untuk menentukan server mana yang akan berperan sebagai backup pada saat server lainnya sedang overload atau sedang dalam keadaan mati 
  • proxy_pass_header : Identifikasi nama server yang dicari di antara kelompok server yang ada, dan jika tidak ditemukan, maka akan ditentukan dengan menggunakan resolver


8.) Masih di file yang sama, kemudian tambahkan script yang diberi blok berwarna biru. Karena pada gambar sebelumnya cluster nya ane namakan backends, maka pada proxy_pass ini harus dinamakan dengan backends juga.


Keterangan :
  • proxy_pass : Untuk menentukan alamat server proxied dan URL ke lokasi mana yang akan dipetakan. Lokasi yang dimaksud dapat berupa Cluster, Domain ataupun IP Address. Pada gambar diatas ane mengaturnya ke cluster upstream backends


9.) Supaya konfigurasi dapat berjalan dengan baik, maka kita perlu merestart service nginx dengan menjalankan command 

systemctl restart nginx

Konfigurasi Server Node2

1.) Edit isi index.html pada server node2 sesuai dengan keinginan. File index.html nya terletak pada directory /usr/share/nginx/html/. Untuk membuka file index.html bisa menjalankan command
nano /usr/share/nginx/html/index.html

Konfigurasi Server Node3

1.) Pada server node3 edit juga isi index.html sesuai dengan keinginan. File index.html nya terletak pada directory /usr/share/nginx/html/. Untuk membuka file index.html bisa menjalankan command
nano /usr/share/nginx/html/index.html

Verifikasi Client

1.) Buka web browser pada client yang IP DNS yang sudah diarahkan ke IP Address server controller. Kemudian akses menggunakan nama masing - masing server, lalu lihat apakah isinya sesuai dengan index.html yang telah di konfigurasi atau tidak.


Dan isinya pun sama.


2.) Kemudian kita coba akses menggunakan nama domain, dan kita coba refresh. Apakah akan sesuai dengan Weight yang ditentukan ? Silahkan simak video dibawah.


Dan hasilnya sama sesuai dengan weight yang sudah ditentukan sebelumnya.


3.) Lalu coba kita matikan server node1 nya dengan menjalankan command
init 0

Karena server node1 nya sudah mati, maka nanti otomatis akan mencari server yang aktif, karena web server yang masih aktif adalah server node2. Maka nanti pada web browser akan menampilkan konten isi index.html dari web server yang dimilik server node2.


4.) Sekarang coba matikan node2 nya dengan menjalankan command 
init 0

Karena server node1 dan node2 sudah mati, maka pada saat client mengakses web browser akan melakukan loading dan pencarian server mana yang masih aktif, ternyata yang aktif dan menjadi backup adalah server node3, maka nanti otomatis pada web browser akan menampilkan konten isi index.html dari web server yang dimilik server node3 yang bertindak sebagai backup.

Jadi dengan menggunakan cara diatas, kita dapat memanage server yang kita miliki dengan baik. Sehingga apabila ada server yang mati, dapat ditanggulanggi atau ditutupi dengan server lain yang masih hidup.

Mungkin hanya sekian yang dapat ane sharing, mohon maaf bila banyak kesalahan dan kekurangan baik dari segi kata dan penulisan.
Terima Kasih. Semoga Bermanfaat. 

Wassalamuallaikum Warahmatullahi Wabarakatuh.

 وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

0 komentar:

Post a Comment