High Availability: Load Balancing dengan Nginx

Taufik Algi
4 min readDec 3, 2019
Sumber: https://commons.wikimedia.org/wiki/File:Nginx_logo.svg

Apa itu Load Balancer?

Sebelum membahas apa itu Load Balancer, ada baiknya kita mengetahui proses Load Balancing terlebih dahulu. Load Balancing adalah teknik untuk mendistribusikan beban trafik (dalam hal ini sebuah website) pada dua jalur yang berbeda atau lebih, agar beban yang ditanggung oleh suatu server dapat dibagi ke dalam beberapa server untuk menghindari overload.

Ilustrasi load balancing

Bagaimana cara melakukan Load Balancing?

Setelah mengetahui apa itu Load Balancing, tentu pertanyaan inilah yang kemudian akan muncul. Untuk melakukan Load Balancing kita dapat menggunakan Load Balancer. Load Balancer adalah alat yang dapat kita gunakan untuk melakukan Load Balancing. Ada berbagai macam Load Balancer yang dapat kita gunakan, salah satunya (yang akan kita bahas) adalah Nginx (dibaca: Engine X).

Cara Install Nginx di Ubuntu

Untuk dapat menggunakan Nginx, kita harus menginstallnya terlebih dahulu. Kita dapat menginstall nginx dengan menuliskan command berikut di terminal:

sudo apt-get install nginx

Cara menginstall nginx di ubuntu

Setelah berhasil menginstall nginx, ketika kita membukan localhost di browser, maka browser akan menampilkan seperti gambar di bawah ini, yang menandakan bahwa proses instalasi nginx yang kita lakukan telah berhasil.

Tampilan localhost yang sudah terinstall nginx

Konfigurasi Nginx

Setelah berhasil menginstall nginx, Load Balancing tidak terjadi dengan ajaib. Tentu kita harus melakukan konfigurasi terlebih dahulu. Untuk melakukan konfigurasi, kita harus mengubah file yang bernama nginx.conf yang terdapat di dalam direktori /etc/nginx menjadi seperti gambar di bawah ini:

Konfigurasi Load Balancing dengan Nginx

Setiap setelah kita selesai mengubah konfigurasi nginx, kita harus me-restart nginx terlebih dahulu. Ini perlu dilakukan agar nginx dapat berjalan sesuai dengan konfigurasi baru yang telah kita atur. Untuk menjalankannya kita tinggal menjalankan command berikut di terminal.

sudo service nginx restart

Membuktikan Load Balancing

Setelah melakukan hal-hal yang disebutkan di atas, artinya kita sudah berhasil melakukan Load Balancing. Langkah selanjutnya adalah membuktikan apakah benar Load Balancing yang kita buat telah bekerja.

Di django, kita harus membuat sebuah project terlebih dahulu beserta appnya. Lalu atur settings.py, urls,py, dan juga views.py agar django app yang kita buat dapat dijalankan. Pada views.py kita dapat membuatnya seperti gambar di bawah agar informasi mengenai host dapat ditampilkan di html.

views.py pada aplikasi django
Html yang menampilkan informasi host dan port yang digunakan

Setelah selesai membuat django app, langkah selanjutnya yang akan kita lakukan adalah menjalankan dua server sekaligus di port yang berbeda (sesuai dengan konfigurasi nginx yang kita buat, port yang digunakan adalah 8000 dan 9000). Server dapat dijalankan dengan menjalankan perintah berikut di terminal

python3 manage.py runserver <port>

<port> dapat diganti sesuai dengan port yang akan kita gunakan. Untuk sekarang, kita akan menajalankan python3 manage.py runserver 8000 dan python3 manage.py runserver 9000.

Setelah berhasil menjalankan server, selanjutnya kita akan membuka web app yang sudah kita buat dengan mengetikkan url localhost di browser. Sesuai dengan template html yang kita gunakan, browser akan menampilkan host dan port yang digunakan untuk membuka web app tersebut. Data mengenai port akan selalu berubah setiap kita melakukan refresh pada halaman tersebut. Ini menandakan bahwa Load Balancing yang kita lakukan sudah berhasil. Yeayy!!

Web app yang berjalan di port 8000
Web app yang berjalan di port 9000

Dengan ini, berakhirlah tutorial mengenai Load Balancing sebuah aplikasi web. Tentu ini bukan satu-satunya cara untuk melakukan Load Balancing dan nginx bukanlah satu-satunya Load Balancer yang ada. Kita dapat menggunakan cara lain dan Load Balancer lain seperti Apache, Tomcat, HAProxy, dll.

Sekian tutorial kali ini, semoga bermanfaat, dan sampai jumpa di lain kesempatan!

--

--

Taufik Algi

Undergraduate student of Computer Science at Universitas Indonesia