load balancing my django app with Nginx

Load balancing adalah proses mendistribusi user request ke beberapa server. Load balancing akan memastikan user request tersebar secara merata di server-server yang ada sehingga tidak ada satu server yang kelebihan beban. Manfaatnya adalah user akan mendapatkan pengalaman yang maksimal ketika mengakses web tersebut. Pada artikel ini, saya akan menjelaskan cara load balancing django app dengan menggunakan Nginx pada MacOS.

  1. Install Nginx

Hal ini dapat dilakukan dengan menggunakan Homebrew dengan perintah :

Apabila belum terdapat homebrew pada perangkat, dapat di download dari brew.sh. Secara otomatis, server Nginx akan terinstall di /usr/local/cellar.

2. Menjalankan Nginx

Setelah Nginx berhasil diinstall, langkah selanjutnya adalah mengaktivasi Nginx. Caranya adalah sebagai berikut :

3. Mengubah konfigurasi Nginx
Sebelum mengubah konfigurasi, pastikan nginx berhenti berjalan dengan perintah “sudo nginx -s stop”. Lalu, kita akan membuka file nginx.conf untuk mengubah konfigurasinya. Pada story ini kita akan menggunakan server 8000 dan 9000, oleh karena itu konfigurasinya saya ganti menjadi seperti ini.

4. Runserver 8000 dan 9000

Setelah itu, saya jalankan web story7 saya pada localhost:8000 dan localhost:9000 di dua terminal tab yang berbeda.

Pada localhost:8000

runserver pada localhost:8000

Pada localhost:9000

runserver pada localhost:9000

Karena web berhasil dibuka di dua server yang berbeda, berarti Nginx berhasil dijalankan. Request akan dijalankan secara bergantian. Pada contoh ini, request pertama dijalankan pada server 8000. Lalu apabila web di refresh, maka request akan dijalankan oleh server 9000. Hal ini merupakan load balancing yang dilakukan Nginx di mana request akan terdistribusi secara merata agar tidak ada server yang overload.

Apabila salah satu server berhenti dijalankan, maka server yang lain masih akan tetap berjalan. Misalkan, saya berhenti menjalankan server 8000, maka server 9000 masih tetap berjalan.

quit server pada 8000
server 9000 masih tetap jalan

Sekian penjelasan saya tentang load balancing menggunakan Nginx pada MacOS. Mohon maaf apabila ada kekurangan. Semoga bermanfaat.

csui 18

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store