My First Load Balancer with NGINX
Pada kesempatan kali ini, saya akan mencoba bahas mengenai load balancing (load balancer sebutan untuk appnya) pada suatu aplikasi website. Sebelum melangkah lebih jauh pertama-tama kita harus tahu terlebih dahulu apa itu load balancing.
Load Balancing adalah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi. Load balancing digunakan pada saat sebuah server telah memiliki jumlah user yang telah melebihi maksimal kapasitasnya. Load balancing juga mendistribusikan beban kerja secara merata di dua atau lebih komputer, link jaringan, CPU, hard drive, atau sumber daya lainnya, untuk mendapatkan pemanfaatan sumber daya yang optimal. (sumber : https://idcloudhost.com/memahami-pentingnya-load-balancing/)
Singkatnya load balancing adalah suatu cara (teknik) untuk membagi arus trafik user yang mengakses suatu website ke dalam beberapa server. Kenapa sih kita harus menggunakan teknik load balancing? Alasan pertama adalah untuk antisipasi jika salah satu server website down maka keseluruhan aplikasi website tidak akan down dan arus trafik user akan dialihkan ke server website lain. Yang kedua adalah untuk aplikasi website yang besar dan sudah mencapai maksimal user yang sanggup ditangangi server, maka dengan load balancing kita akan memiliki beberapa server lagi untuk menampung user tersebut. Selain itu juga untuk meningkatkan kecepatan akses ke aplikasi website tersebut (waktu respon).
Aplikasi (tools) yang berfungsi untuk melakukan load balancing disebut load balancer dan dalam pembahasan kali ini kita menggunakan NGINX. Bagaimana sih cara kita menerapkan load balancing pada website kita? Caranya terbilang cukup mudah kok… Yuk ikutin langkah-langkah dibawah ini…
INSTALL DAN MENJALANKAN NGINX
- Install (download) Nginx pada website resmi http://nginx.org/en/download.html dan akan muncul seperti ini :
2. Setelah didownload maka akan muncul file berekstensi zip, ekstrak file zip tersebut dekat dengan project aplikasi website yang ingin anda load balancing (agar lebih mudah konfigurasinya)
3. Buka folder hasil ekstrak tersebut, lalu buka command prompt (cmd) dan aktivasi nginx dengan command “start nginx”.
4. Buka localhost (127.0.0.1) pada web browser. Jika muncul seperti ini, maka nginx berhasil aktivasi.
KONFIGURASI NGINX DAN MEMERIKSA PADA VIEWS
- Setelah nginx berhasil aktivasi, selanjutnya buka folder conf lalu edit bagian nginx.conf (bisa menggunakan code editor apa saja), maka akan muncul script seperti ini:
2. Hapus semua script tersebut dan ganti dengan script berikut, lalu save.
events {
worker_connections 1024;
}
http {
upstream localhost {
server localhost:8000;
server localhost:9000;
# di sini kita bisa menambahkan port-port yang lain
# kita juga bisa menambahkan weight pada sebuah server, misalnya
# server localhost:8000 weight = 3;
}
server {
listen 80;
location / {
proxy_pass http://localhost;
}
}
}
3. Langkah selanjutnya adalah buka project django, lalu buka dua cmd pada project django, lalu jalankan servernya. Pertama pada port 8000 dan kedua pada port 9000 (ini menandakan kita menjalankan dua server dengan port berbeda) dengan cara “python manage.py runserver 8000” dan “python manage.py runserver 9000”.
4. Selanjutnya kita harus merestart nginx kita dengan cara, kembali ke cmd yang berlokasi di folder nginx lalu jalankan command berikut “ nginx -s reload”.
5. Load balancing dengan nginx berhasil dijalankan. Selanjutnya kita perlu mengecek apakah load balancer benar-benar berhasil dijalankan dengan cara masuk ke views. Lalu simpan host dan port dengan method request.get_host() dan request.get_port() ke dalam suatu variabel, dan masukkan pada context saat rendering, seperti berikut:
6. Lalu masuk ke html, lalu ambil parameter host dan port yang telah di render di views untuk ditampilkan pada halaman website, seperti berikut:
7. Buka localhost dan refresh beberapa kali, maka akan ada perubahan port yang artinya load balancing berhasil bekerja dengan baik.
And…. CONGRATULATION !!! You already make your first load balancer with nginx
Kalian bisa membuat server lebih dari dua yaitu dengan cara menambahkan portnya pada nginx.conf dan jalankan server django project sesuai port tersebut.
Terimakasih telah membaca artikel ini, jika ada kritik dan saran silahkan isi di kolom komentar… Sampai jumpa pada kesempatan selanjutnya !!! Byeee