Skip to main content

Lab 8.19 Konfigurasi LoadBalancing dengan Nginx di Centos 7

Assalamu'alaikum wr.wb



Pada kali ini ane ingin share cara membuat cluster loadbalance pada webserver dengan nginx. Untuk metode Loadbalancing disini masih menggunakan nginx tanpa tambahan aplikasi lain dan menggunakan module upstream pada nginx dengan toplogi sebagai berikut.


Pada topologi diatas, saya memiliki 4 server, yaitu 3 server sebagai node, dan satu sebagai controller yang mengatur node tersebut dengan domain dan ip yang telah saya tentukan pada gambar diatas. Loadbalancing adalah sebuah metode yang bertujuan untuk menyeimbangkan beban pada server. Nah jadi setiap ada request dari klien, si controller akan mengatur porsi yang ditangani pada setiap node. Dengan begitu, beban yang ditangani node akan tidak terlalu banyak. Oke langsung saja kita konfigurasi.

A. Konfigurasi Controller

1. Buat konfigurasi untuk loadbalancing didalam /etc/nginx/conf.d/ untuk namanya bebas, tapi harus berakhiran .conf. Disini saya membuatnya dengan nama lb.conf



2. Masukkan konfigurasi seperti dibawah ini


upstream diatas berguna untuk membuat block untuk membuat cluster untuk proxy. Dan cluster disana, saya menamainya dengan backend-ali. Namanya bisa anda tentukan sesuka hati
server merupakan anggota (node) dari cluster yang telah dibuat. Disana saya mendaftarkan 3 anggota atau 3 server, yaitu node1.alhudsf.com node2.alhudsf.com, dan node3.alhudsf.com dengan port :80 ini artinya dalam cluster backend-ali dengan anggotanya akan menangani request melalui port 80.
Secara default, jika tidak menambahkan apa apa, hanya server serveranda:port maka controller akan mengatur agar server tersebut hanya menangani 1 kali request dari klien. Dan jika ditambahkan keterangan seperti misalnya weight=2 merupakan beban yang ditanggung sebuah anggota atau node. Misalnya diatas, saya mengatur node1 dengan weightnya 2. Ini artinya node1 akan menangani 2 kali request klien secara berurutan. Kalau backup merupakan option yang akan menangani request jika anggota atau node yang lain mati. Ibaratnya seperti failover, tapi dalam lingkup metode loadbalancing. Jadi node3 yang saya atur sebagai server backup dia akan mengambil alih request dari klien kalau node yang lain mati. Sedangkan kalau node1 dan node2 hidup, node3 tidak akan menangani request dari klien.
proxy_redirect off berguna agar controller tidak melakukan redirect pada suatu konten website. 
proxy_set_header berguna untuk mengizinkan mendefinisikan ulang atau menambahkan bidang ke header permintaan yang dikirimkan ke server proxy.
proxy_set_header X-Real-IP $remote_addr berguna untuk mengatur alamat IP dari klien sehingga proxy dengan benar dapat membuat keputusan atau masuk berdasarkan informasi ini. Variabel $remote_addr merupakan IP client yang mengakses server.
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for maksudnya adalah Header X-Forwarded-For adalah daftar yang berisi alamat IP dari setiap server yang telah diprogramkan klien sampai saat ini. Pada contoh di atas, kami menetapkan variabel $ proxy_add_x_forwarded_for ini. Variabel ini mengambil nilai dari header X-Forwarded-For asli yang diambil dari klien dan menambahkan alamat IP server Nginx sampai akhir.
proxy_set_header Host $http_host Permintaan di atas menetapkan header "Host" ke variabel $http_host, yang berisi informasi tentang host asli yang diminta
proxy_pass_header node1,node2 berguna untuk mengizinkan lewat header yang dinonaktifkan dari server proxy ke client.
location / diatas menandakan konten website berada. Pada konfigurasi diatas, saya mengaturnya pada proxy_pass http://backend-ali/ .ini artinya saya mengaturnya kalau klien mengakses server controller, maka controller akan meneruskan request tersebut ke cluster backend-ali yang telah dibuat dengan beban yang telah ditentukan sebelumnya

3. Restart service nginx agar konfigurasi yang baru dibuat berjalan


B. Konfigurasi Node1

Sebenarnya pada node tidak diberikan konfigurasi apa apa. Hanya menginstall nginx dan menjalankan servicenya, kemudian membuat konten pada direktori defaultnya, dan mengatur firewall saja. Dan pastikan pada setiap node sudah terinstall nginx.

Oke langsung saja.
1. Buat file index untuk pengujian pada direktori defaultnya. 


2. Isikan filenya sesuai hati anda. Disini saya memasukkannya sebagai berikut


3. Aktifkan dan jalankan service nginx


4. Konfigurasi firewall agar mengizinkan service http pada node

C. Konfigurasi Node2

1. Buat file index untuk pengujian pada direktori defaultnya.





2. Isikan filenya sesuai hati anda. Disini saya memasukkannya sebagai berikut


3. Aktifkan dan jalankan service nginx kemudian konfigurasi firewall agar mengizinkan service http pada node


D. Konfigurasi Node3

1. Buat file index untuk pengujian pada direktori defaultnya.


2. Isikan filenya sesuai hati anda. Disini saya memasukkannya sebagai berikut


3. Aktifkan dan jalankan service nginx kemudian konfigurasi firewall agar mengizinkan service http pada node

E. Pengujian

1. Buka website anda dengan mengetikkan domain atau IP controller, kemudian lakukan refresh beberapa kali, kemudian akan terlihat node1 akan dua kali menangani request, sedangkan node2 hanya sekali menangani request. 


2. Hentikan service nginx pada node1 dan node2 untuk melihat apakah node3 berhasil menjalankan tugasnya sebagai server backup.

Pada node1


Pada node2


3. Kemudian buka lagi website anda, mungkin akan melakukan loading yang agak lama sekitar 2 - 4 detik. Kemudian akan terlihat kalau node3 yang menangani request


Sekian, Kurang Lebihnya Mohon Maaf
Semoga Bermanfaat
loading...

Comments

Popular posts from this blog

Merepresentasikan Algoritma dengan Flowchart dan Pseudocode

  Merepresentasikan Algoritma dengan Flowchart Flowchart adalah jenis diagram (grafis tau simbolik) yang mewakili suatu algoritma atau proses-proses tertentu. Setiap langkah dalam algoritma diwakili oleh simbol yang sama atau berbeda dan berisi penjelasan singkat setiap langkah. Flowchart merepresentasikan algoritma dalam bentuk desain, simbol dan dijadikan dokumentasi dan kemudian dituangkan menjadi kode-kode program. Sebelum membuat flowchart, kita harus memahami unsur flowchart sebagai berikut : Input Percabangan ( biasanya menggunakan perintah if dan switch) Perulangan ( biasanya menggunakan perintah atau kode while, for, loop, each ) Output Flowchart biasanya digambar menggunakan beberapa simbol standar, namun tidak menutup opsi lain untuk menyertakan simbol-simbol di luar standar untuk digunakan jika memang diperlukan simbol tersebut di desain yang kita buat. Berikut ini simbol – simbol yang biasa digunakan dalam flowchart. Simbol simbol diatas adalah simbol dasar yang diguna...

Contoh Soal Data dalam Sistem Bahasa Pemrograman R

  Tuliskan pernyataan R untuk membuat deret bilangan berikut : x = [-5 -4 -3 -2 -1 0 1 2 3] y = [5 4 3 2 1] z = [1000000 1166667 1333333 1500000 1666667 1833333 2000000] p = [9 9 9 5 5 5] q = [1 1 1 2 2 2 1 1 1 2 2 2] Jawaban : > x <- seq (from=-5,to=3,length=9) > x [1] -5 -4 -3 -2 -1 0 1 2 3 > y <- seq (from=5,to=1,length=5) > y [1] 5 4 3 2 1 > z <- seq (from=1000000,to=2000000,length=7) > z [1] 1000000 1166667 1333333 1500000 1666667 1833333 2000000 > p <- rep(c(9,5),each=3) > p [1] 9 9 9 5 5 5 > q <- rep(c(1,2,1,2),each=3) > q [1] 1 1 1 2 2 2 1 1 1 2 2 2 Tuliskan pernyataan R untuk membuat frame data siswa berikut : No Jurusan asal_daerah usia 1 Komputer Bogor 25 2 Fisika Bogor 25 3 Komputer Bandung 25 4 Fisika Bandung 25 5 Komputer Bogor 26 6 Fisika Bogor 26 7 Komputer Bandung 26 8 Fisika Bandung 26 Jawaban : > jurusan <- c("Komputer","Fisika","Komputer","Fisika","Komputer...

Lab 8.8 Konfigurasi Log Analyzer Visited Pages dengan Awstats di Apache pada Centos7

Assalamu’alaikum wr.wb Pada kali ini ane ingin share cara monitoring dengan awstats. Awstats adalah sebuah tools untuk memantau visited pages pada webserver. Langsung saja kita konfigurasi 1. Install epel, karena awstats ini tidak ada pada repository centos, tetapi ada pada epel. Caranya adalah seperti dibawah ini   2. Kemudian install awstats 3. Awstats ini secara default membuat konfigurasi sesuai dengan hostname. Jika tidak sesuai Antara hostname dan web yang akan dibuatkan halaman awstatsnya, maka rename konfigurasi yang ada sesuai hostname menjadi nama domain anda tanpa menghilangkan format yang ada. [root@ct-ali ~]# mv /etc/awstats/awstats.ct-ali.alisofyan.com.conf /etc/awstats/awstats.www.alisofyan.com.conf 4. Konfigurasi awstats untuk webserver yang telah diatur [root@ct-ali ~]# vi /etc/awstats/awstats.www.alisofyan.com.conf Sesuaikan konfigurasi seperti dibawah ini dengan keadaan anda  dan ...
loading...