
Load-balancing adalah praktik paling umum dalam mendistribusikan lalu lintas web masuk di antara beberapa server back-end. Ini membuat aplikasi sangat tersedia bahkan jika beberapa server mati karena alasan tertentu. Load Balancing meningkatkan efisiensi dan keandalan aplikasi web. HAProxy load-balancer digunakan untuk tujuan yang sama. Ini adalah penyeimbang beban yang paling banyak digunakan di industri. Sesuai situs resminya, HAProxy digunakan oleh perusahaan terkemuka seperti AWS, Fedora, Github, dan banyak lagi.
HAProxy atau High Availability Proxy menyediakan ketersediaan tinggi dan solusi proxy. Itu ditulis dalam C dan bekerja pada lapisan jaringan dan aplikasi dari model TCP/IP. Yang terbaik adalah ia memiliki edisi komunitas gratis, dan ini adalah aplikasi sumber terbuka. Ia bekerja pada sistem operasi Linux, FreeBSD, dan Solaris. Edisi perusahaan juga ada, tetapi memiliki label harga.
Dalam panduan ini, kita akan melihat How to Install HAProxy and Configure the Load Balancing Server on Debian 10.
Prasyarat:
- Akses “sudo” ke semua engine dan pengetahuan dasar tentang menjalankan perintah di terminal Linux.
- Alamat IP pribadi ditambahkan ke load-balancer dan server backend.
- Sistem Operasi Debian 10 diinstal pada semua engine.
Menginstal HAProxy di Debian 10
Untuk panduan kami, kami akan mengasumsikan konfigurasi alamat IP berikut:
- HAProxy load-balancer 10.0.12.10
- Server web1: Alamat IP: 10.0.12.15
- Server web2: Alamat IP: 10.0.12.16
Langkah 1. Perbarui repositori dan paket Sistem Debian
Pertama, jalankan perintah di bawah ini pada semua sistem untuk memperbarui paket perangkat lunak ke yang terbaru.
$ sudo apt update
$ sudo apt upgrade -y
Langkah: 2 Instal Nginx di server back-end
Siapkan server back-end Anda dengan menginstal server web Nginx di masing-masing. Anda juga dapat memilih untuk menginstal server web lain seperti apache.
Untuk menginstal Nginx, jalankan perintah berikut di setiap server back-end di lingkungan Anda:
$ sudo apt install nginx
Langkah: 3 Setelah Nginx diinstal pada server back-end Anda, mulai service, seperti yang ditunjukkan di bawah ini:
$ sudo systemctl start nginx
TIP : Kami juga dapat mengelola server web nginx menggunakan perintah di bawah ini:
$ sudo /etc/init.d/nginx “option”
option: start reload restart status stop
Langkah: 4 Buat halaman indeks khusus di folder web setiap server web Nginx. Ini akan membantu kami membedakan server back-end mana yang melayani permintaan masuk.
Di setiap server web, lakukan tugas berikut:
Cadangkan file indeks asli menggunakan perintah berikut:
$ sudo cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
Tambahkan teks khusus ke file index.html. Kami menambahkan alamat IP dari setiap server web.
Untuk server web 1:
$ sudo echo "Web server 1: 10.0.12.15" | sudo tee /usr/share/nginx/html/index.html
Untuk server web 2:
$ sudo echo "Web server 2: 10.0.12.16" | sudo tee /usr/share/nginx/html/index.html
Anda juga dapat menggunakan editor vi jika Anda merasa lebih nyaman dengan itu. Ini ditunjukkan di bawah ini:
$ sudo vi /usr/share/nginx/html/index.html
Saat file dibuka, masukkan teks dan simpan file.
Buka file host virtual default di direktori “/etc/nginx/sites-available/”.
$ sudo nano /etc/nginx/sites-available/default
Sekarang di dalam blok server, ubah root directive dari “/var/www/html” menjadi “/usr/share/nginx/html”.
Untuk memeriksa konfigurasi Nginx, jalankan perintah berikut:
$ sudo nginx -t
Langkah 5: Sekarang restart service menggunakan perintah:
$ sudo systemctl restart nginx
$ sudo systemctl status nginx
Langkah: 6 Untuk menginstal HAProxy di Debian 10 (Buster), jalankan perintah berikut pada load-balancer.
$ sudo apt install haproxy -y
Tip : Setelah HAProxy diinstal, Anda dapat mengelola HAProxy melalui skrip init. Untuk ini, atur parameter “enabled” ke 1 di “/etc/default/haproxy” seperti yang ditunjukkan di bawah ini:
$ sudo vi /etc/default/haproxy
ENABLED=1
Sekarang opsi berikut dapat digunakan dengan skrip init:
$ sudo service haproxy “option.”
option: start reload restart status stop
Langkah: 7 Sekarang konfigurasikan HAProxy load-balancer dengan mengedit file konfigurasi default haproxy, yaitu “/etc/haproxy/haproxy.cfg”. Untuk mengedit file ini, jalankan perintah berikut
$ sudo vi /etc/haproxy/haproxy.cfg
Tip : Harap buat cadangan file asli sehingga jika terjadi error, kita semua akan aman. Untuk melakukan backup, gunakan perintah berikut:
$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.orig
Sekarang pergi ke akhir file dan edit informasi berikut:
frontend Local_Server
bind 10.0.12.10:80
cara http
default_backend webserver
backend webserver
cara http
balance roundrobin
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
option httpchk HEAD / HTTP/1.1rnHost:localhost
server web1 10.0.12.15:80
server web2 10.0.12.16:80
Catatan : Jangan lupa untuk mengubah alamat IP pada file di atas dengan yang telah Anda tambahkan ke server web Anda.
Langkah: 8 Verifikasi sintaks konfigurasi file di atas dengan perintah berikut:
$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg
Jika semuanya berjalan dengan benar, itu akan menampilkan output seperti: “File konfigurasi valid.” Jika Anda mendapatkan error dalam output, periksa kembali file konfigurasi Anda dan verifikasi lagi.
Langkah: 9 Sekarang restart service HAProxy untuk menerapkan perubahan
$ sudo service haproxy restart
Menguji Konfigurasi
Sekarang saatnya untuk melihat apakah pengaturan kita berfungsi dengan benar. Masukkan IP sistem penyeimbang beban pada peramban web (Dalam kasus kami, ini adalah 10.0.12.10) dan segarkan halaman terus menerus selama 2-4 kali untuk melihat apakah penyeimbang beban HAProxy berfungsi dengan baik. Anda akan melihat alamat IP yang berbeda atau teks apa pun yang telah Anda masukkan dalam file index.html saat Anda terus me-refresh halaman beberapa kali.
Cara lain untuk memeriksa adalah dengan membuat satu server web offline dan memeriksa apakah server web lain melayani permintaan.
Itu saja untuk saat ini! Cobalah bereksperimen dengan HAProxy untuk mempelajari lebih lanjut tentang cara kerjanya. Misalnya, Anda dapat mencoba:
- Mengintegrasikan server web yang berbeda di samping nginx.
- Mengubah algoritma load-balancing menjadi sesuatu selain round-robin.
- Mengonfigurasi pemeriksaan kesehatan HAProxy untuk menentukan apakah server back-end berfungsi atau tidak.
- Menerapkan sesi lengket untuk menghubungkan user ke server back-end yang sama.
- Menggunakan statistik HAProxy untuk mendapatkan wawasan tentang lalu lintas di server.
HAProxy memiliki dokumentasi ekstensif yang tersedia untuk edisi komunitas HAProxy dan versi perusahaan HAProxy. Jelajahi dokumentasi ini untuk mendapatkan lebih banyak wawasan tentang peningkatan kinerja dan keandalan lingkungan server Anda.
Panduan ini telah berhasil dilakukan pada Debian 10(Buster). Cobalah untuk menginstal HAProxy di distro berbasis Debian lainnya seperti Ubuntu, Linux Mint dll. Jangan lupa untuk membagikan panduan ini kepada orang lain.