High Availability: Load Balancing dengan Nginx
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.
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
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.
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:
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.
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!!
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!