Cara Setting Load Balancing dengan Nginx

Cara Setting Load Balancing dengan Nginx

Load Balancing adalah sebuah mekanisme untuk membagi atau mendistribusikan trafik ke beberapa server. Nginx selain berfungsi sebagai web server bisa juga berfungsi sebagai load balancer.

Metode Load Balancing

  1. Round Robin: mendistribusikan trafik ke setiap server secara bergantian.
  2. Least Connections: mendistribusikan trafik ke server yang paling sedikit koneksi aktifnya.
  3. IP Hash: mendistribusikan trafik ke server yang sama ketika visitor pertama kali melakukan request.

Topologi Load Balancing
Topologi Load Balancing

0.Perangkat yang digunakan

Perangkat yang digunakan di tutorial ini:

  • OS Ubuntu 18.04 LTS
  • Nginx web server
  • PHP-FPM 7.2
  • Node1: 10.130.127.167
  • Node2: 10.130.128.35
  • LoadBalancer: 128.199.187.215
  • Domain: defnex.com

1.Install Nginx dan PHP-FPM di Node

Install Nginx di Node1 dan Node2.

Membuat file index.php di Node1.

Membuat file index.php di Node2.

Membuat server block di Node1 dan Node2.

File konfigurasi server block.

Uji dan restart Nginx.

2.Install dan Konfigurasi Nginx di Load Balancer

Install Nginx.

Membuat server block untuk load balancing domain defnex.com.

File konfigurasi server block load balancing domain defnex.com.

Pada konfigurasi upstream backend dituliskan IP address dari backend server. Secara default metode load balancing yang digunakan adalah Round Robin.

Konfigurasi load balancing jika menggunakan metode Least Connections.

Konfigurasi load balancing jika menggunakan metode IP Hash.

Uji dan restart Nginx.

3.Pengujian

Browse domain berulang kali, akan menampilkan halaman dari Node1 dan Node2 secara bergantian.

Halaman index.php dari Node1
Halaman index.php dari Node1
Halaman index.php dari Node2
Halaman index.php dari Node2

selamat mencoba 🙂

Dukung blog ini dengan donasi via Trakteer.id, PayPal, atau Jenius Pay $musaamin.

Default image
Musa Amin
I am a Linux System Administrator and also write many tutorials about Linux, Cloud, and Open Source. Hire me via email hai[at]musaamin.web.id.
Articles: 745

29 Comments

  1. bang mohon di update pada gambar
    pada backend mana yang,
    server 10.130.127.167; #node1
    server 10.130.128.35; #node2

  2. Mau tanya pak, berarti kita harus menyediakan 2 server yg berbeda pak? Saya lihatnya backend #1 dan backend #2 itu di server yg berbeda.

  3. This page isn’t working xxxxxxxx.sch.id redirected you too many times.
    Try clearing your cookies.
    ERR_TOO_MANY_REDIRECTS

    pak saya punya kendala di haproxy moodle saya, ketika buka alamat webnya normal, tapi ketika akses login untuk buka dasboard muncul kendala This page isn’t working xxxxxxxx.sch.id redirected you too many times.
    Try clearing your cookies.
    ERR_TOO_MANY_REDIRECTS
    sedangkan disaya cek server haproxy nya juga statusnya Up padahal.

  4. halo pak saya mau bertanya itu untuk membuat node 1 node 2 dan load balancer nya apakah dalam satu pc yang sama? dan apabila dalam satu pc yang sama bagaimana cara membuat nya? dan apakah penggunaan nya sama saja bila menggunakan virtual box?

      • saya sudah membuat 3 virtual machine di virtual box tetapi saya menggunakan setting bridge adapter supaya mendapat ip local yang berbeda pada hasil dari ifconfig tetapi masih tidak dapat tersambung ketika mencoba membuka domain dari defnex.com kalau seperti itu apakah harus ganti menggunakan nat dengan walaupun ip local nya sama ?

          • mau bertanya lagi ni mas misalkan saya membuat virtual machine nya di 3 pc berbeda dalam satu jaringan LAN yang sama apakah bisa? karena satu pc tidak cukup untuk digunakan menjalakan 3 virtual machine

          • kalau menggunakan /etc/host berarti menggunakan jaringan localhost ya mas? seperti menggunakan localhost pada xamp? maaf mas baru belajar jadi banyak nanya

          • di /etc/hosts kita mendefinisikan sebuah host berada di IP berapa. tidak hanya localhost, bisa juga memasukkan host yang ada di internet dengan public IP.

          • saya sudah mengatur ip local dari kedua node pada /etc/hosts pada kedua node dan juga pada load balancer tetapi yang berjalan ketika di search web nya hanya satu node yang selalu tampil kira kira salah konfgurasi di bagian mana ya mas?

          • maksudnya search web, pakai google? cara ujinya refresh terus halaman webnya, sampai menampilkan halaman dari node-node secara bergantian.

        • bukan dari google mas maksudnya ya yang sudah seperti mas nya jabarkan tetapi yang muncul hanya dari satu node saja

  5. Permisi, saya kepikiran untuk membuat streaming server. Sudah sedia 2 server dedicated utama untuk nyimpen filenya. Pertanyaannya, untuk server load balance-nya apa perlu spek besar seperti 2 server sebelumnya? Trims

    • sesuaikan dengan trafiknya, mulai saja dulu dengan spesifikasi rendah, pantau pemakaian sumber dayanya, apakah cukup atau harus upgrade sumber daya

  6. permisi bagaimana cara untuk melakukan test dengan melakukan pada load balancer tersebut sedangkan web tersebut hanya berjalan pada local dan bisa diakses dengan menggunakan ip local dari server load balancer tersebut tanpa perlu membutuhkan partisipan yang banyak dan bisa melihat hasil trafik nya?

  7. maaf pak load balancing ini kan lebih mengarah ke webservernya pak, bagaimana jika ingin implementasi dari sisi si dns nya ya, jadi domain A ini memiliki 2 ip public, dengan destination 1 web server, bagaimana jika ingin melakukan load balancing untuk si domain A yang menggunakan 2 ip public ini untuk akses ke dalam 1 server, mohon pencerahannya

Leave a Reply