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 Proxy Ketersediaan Tinggi memberikan ketersediaan tinggi dan solusi proxy. Itu ditulis dalam C dan bekerja pada jaringan dan lapisan aplikasi dari model TCP/IP. Yang terbaik adalah ia memiliki edisi komunitas gratis, dan ini adalah aplikasi sumber terbuka. Ini bekerja pada sistem operasi Linux, FreeBSD, dan Solaris. Edisi perusahaan juga ada, tetapi memiliki label harga.
Dalam panduan ini, kita akan melihat Cara Menginstal HAProxy dan Mengonfigurasi Server Penyeimbang Beban di Debian 10.
Prasyarat:
- akses "sudo" ke semua mesin 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 mesin.
Menginstal HAProxy di Debian 10
Untuk panduan kami, kami akan mengasumsikan konfigurasi alamat IP berikut:
- HAProxy penyeimbang beban 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 untuk menginstal nginxLangkah: 3 Setelah Nginx diinstal pada server back-end Anda, mulai layanan, seperti yang ditunjukkan di bawah ini:
$ sudo systemctl start nginxTIP: Kami juga dapat mengelola server web nginx menggunakan perintah di bawah ini:
$ sudo /etc/init.d/nginx "opsi"opsi: mulai memuat ulang status mulai ulang berhenti
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 incoming.
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.asalTambahkan teks khusus ke indeks.file html. Kami menambahkan alamat IP dari setiap server web.
Untuk server web 1:
$ sudo echo "Server web 1:10.0.12.15" | sudo tee /usr/share/nginx/html/index.htmlUntuk server web 2:
$ sudo echo "Server web 2: 10.0.12.16" | sudo tee /usr/share/nginx/html/index.htmlAnda juga dapat menggunakan editor vi jika Anda merasa lebih nyaman dengan itu. Ini ditunjukkan di bawah ini:
$ sudo vi /usr/share/nginx/html/index.htmlSaat file dibuka, masukkan teks dan simpan file.
Buka file host virtual default di direktori “/etc/nginx/sites-available/”.
$ sudo nano /etc/nginx/sites-available/defaultSekarang 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 -tLangkah 5: Sekarang restart layanan menggunakan perintah:
$ sudo systemctl restart nginxAnda dapat memeriksa status nginx menggunakan perintah berikut:
$ sudo systemctl status nginxLangkah: 6 Untuk menginstal HAProxy di Debian 10 (Buster), jalankan perintah berikut pada load-balancer.
$ sudo apt install haproxy -yTip: 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/haproxyDIAKTIFKAN = 1
Sekarang opsi berikut dapat digunakan dengan skrip init:
$ sudo layanan haproxy "opsi".”opsi: mulai memuat ulang status mulai ulang berhenti
Langkah: 7 Sekarang konfigurasikan HAProxy load-balancer dengan mengedit file konfigurasi default haproxy, mis.e. “/etc/haproxy/haproxy.cfg”. Untuk mengedit file ini, jalankan perintah berikut
$ sudo vi /etc/haproxy/haproxy.cfgTip: Harap buat cadangan file asli sehingga jika terjadi kesalahan, kita semua akan aman. Untuk melakukan backup, gunakan perintah berikut:
$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.asalSekarang pergi ke akhir file dan edit informasi berikut:
Frontend Local_Serverikat 10.0.12.10:80
modus http
default_backend server web
server web backend
modus http
keseimbangan roundrobin
opsi forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if ssl_fc
opsi 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 dalam 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.cfgJika semuanya berjalan dengan benar, itu akan menampilkan output seperti: “File konfigurasi valid.” Jika Anda mendapatkan kesalahan dalam output, periksa kembali file konfigurasi Anda dan verifikasi lagi.
Langkah: 9 Sekarang restart layanan HAProxy untuk menerapkan perubahan
$ sudo service haproxy restartMenguji Konfigurasi
Sekarang saatnya untuk melihat apakah pengaturan kita berfungsi dengan baik. Masukkan IP sistem penyeimbang beban pada browser web (Dalam kasus kami, ini adalah 10.0.12.10) dan refresh halaman terus menerus selama 2-4 kali untuk melihat apakah HAProxy load-balancer berfungsi dengan baik. Anda akan melihat alamat IP yang berbeda atau teks apa pun yang Anda masukkan dalam indeks.html ketika 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. untuk e.g., 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 pengguna 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). Coba instal HAProxy di distro berbasis Debian lain seperti Ubuntu, Linux Mint, dll. Jangan lupa untuk membagikan panduan ini kepada orang lain.