GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menginstal dan Mengonfigurasi penyeimbang beban HAProxy di Ubuntu 20.04

Haproxy populer untuk penyeimbangan beban karena efisiensi, keandalan, dan memori serta jejak CPU yang rendah. Load balancing adalah solusi umum untuk mendistribusikan aplikasi web secara horizontal di beberapa host sekaligus memberikan satu titik akses ke layanan kepada pengguna.

Ini tersedia untuk diinstal pada distribusi Linux utama. Dalam panduan ini kita akan mempelajari cara menginstal dan mengkonfigurasi HAProxy load balancer di Ubuntu 20.04.

Cek juga:

  • Cara menginstal dan Mengkonfigurasi load balancer HAProxy di Rocky Linux/Alma Linux 8
  • Cara menginstal dan Mengonfigurasi penyeimbang beban HAProxy di Debian 11

HAProxy Algoritme penyeimbangan beban

Algoritme penyeimbangan digunakan untuk memutuskan ke server mana di backend setiap koneksi ditransfer. Beberapa opsi yang berguna termasuk yang berikut:

  • Roundrobin: Setiap server digunakan secara bergiliran sesuai dengan bobotnya. Ini adalah algoritma yang paling halus dan paling adil ketika waktu pemrosesan server tetap terdistribusi secara merata. Algoritme ini bersifat dinamis, yang memungkinkan bobot server disesuaikan dengan cepat.
  • Leastconn: Server dengan jumlah koneksi terendah dipilih. Round-robin dilakukan antara server dengan beban yang sama. Penggunaan algoritme ini direkomendasikan untuk sesi yang panjang, seperti LDAP, SQL, TSE, dll, tetapi tidak terlalu cocok untuk sesi singkat seperti HTTP.
  • Pertama: Server pertama dengan slot koneksi yang tersedia menerima koneksi. Server dipilih dari pengenal numerik terendah hingga tertinggi, yang defaultnya adalah posisi server di ladang. Setelah server mencapai nilai maxconn, server berikutnya akan digunakan.
  • Sumber: Alamat IP sumber di-hash dan dibagi dengan berat total server yang berjalan untuk menentukan server mana yang akan menerima permintaan. Dengan cara ini, alamat IP klien yang sama akan selalu mencapai server yang sama sementara server tetap sama.

Daftar Isi

  1. Memastikan bahwa server selalu mutakhir
  2. Memasang HAProxy
  3. Mengonfigurasi HAProxy sebagai penyeimbang beban
  4. Menguji penyiapan
  5. Sandi melindungi halaman Statistik HAProxy

1. Memastikan bahwa server sudah diperbarui

Sebelum melanjutkan, izinkan kami memastikan bahwa server sudah diperbarui. Gunakan perintah ini untuk mencapai ini:

sudo apt update
sudo apt upgrade -y

2. Memasang Haproxy

Paket yang menyediakan haproxy tersedia di Repos Debian default. Instal menggunakan perintah ini:

sudo apt install -y haproxy

Konfirmasi instalasi dengan perintah ini:

$ apt-cache policy haproxy
haproxy:
  Installed: 2.0.13-2ubuntu0.3
  Candidate: 2.0.13-2ubuntu0.3
  Version table:
 *** 2.0.13-2ubuntu0.3 500
        500 http://eu-west-3.ec2.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.0.13-2 500
        500 http://eu-west-3.ec2.archive.ubuntu.com/ubuntu focal/main amd64 Packages

3. Mengonfigurasi HAProxy sebagai penyeimbang beban

Untuk mengonfigurasi HAProxy sebagai penyeimbang beban, kita perlu memberi tahu jenis koneksi apa yang harus didengarkan dan ke mana koneksi harus di-relay. Ini dilakukan dengan membuat file konfigurasi /etc/haproxy/haproxy.cfg dengan pengaturan yang ditentukan.

Penyeimbangan beban pada lapisan 4

Setelah instalasi, HAProxy sudah memiliki template untuk mengkonfigurasi load balancer. Buka file konfigurasi menggunakan editor teks Anda, saya menggunakan vim:

sudo vim /etc/haproxy/haproxy.cfg

Tambahkan konten ini untuk mengonfigurasi antarmuka mendengarkan dan antarmuka backend tempat lalu lintas akan diseimbangkan dengan beban.

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server <server1 name> <private IP 1>:80 check
   server <server2 name> <private IP 2>:80 check

Ganti  dengan apa pun yang Anda inginkan untuk memanggil server Anda di halaman statistik dan  dengan IP pribadi untuk server yang ingin Anda tuju lalu lintas webnya. Ini adalah konfigurasi yang saya gunakan di server saya

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server web_server_1 10.70.5.41:80 check
   server web_server_2 10.70.5.187:80 check

Di atas mendefinisikan penyeimbang beban lapisan 4 dengan nama front-end http_front mendengarkan nomor port 80, yang kemudian mengarahkan lalu lintas ke backend default bernama http_back. URI statistik tambahan /haproxy?stats mengaktifkan halaman statistik pada alamat yang ditentukan.

Penimbangan beban pada lapisan 7

Kami juga dapat mengonfigurasi penyeimbang beban untuk bekerja pada lapisan 7. Ini berguna ketika bagian dari aplikasi web Anda berada di host yang berbeda. Ini dapat dicapai dengan mengkondisikan transfer koneksi, misalnya melalui URL.

Buka file konfigurasi menggunakan editor teks Anda, saya menggunakan vim:

sudo vim /etc/haproxy/haproxy.cfg

Kemudian tambahkan konfigurasi ini

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   acl url_blog path_beg /blog
   use_backend blog_back if url_blog
   default_backend http_back

backend http_back
   balance roundrobin
   server <server name> <private IP>:80 check
   server <server name> <private IP>:80 check

backend blog_back
   server <server name> <private IP>:80 check
   server <server name> <private IP>:80 check

Bagian depan mendeklarasikan aturan ACL bernama url_blog yang berlaku untuk semua koneksi dengan jalur yang dimulai dengan /blog. Use_backend menentukan bahwa koneksi yang cocok dengan kondisi url_blog harus dilayani oleh backend bernama blog_back, sementara semua permintaan lainnya ditangani oleh backend default.

Di sisi backend, konfigurasi menyiapkan dua grup server, http_back seperti sebelumnya dan yang baru disebut blog_back yang secara khusus menghubungkan server ke example.com/blog.

Setelah melakukan konfigurasi, simpan file dan restart HAProxy dengan perintah berikutnya.

sudo systemctl restart haproxy

Jika Anda mendapatkan kesalahan atau peringatan saat memulai, periksa konfigurasi apakah ada kesalahan ketik, lalu coba mulai ulang lagi.

Mengonfigurasi SSL

Jika Anda memiliki file kunci pribadi dan file sertifikat yang ingin Anda gunakan dengan HAProxy, gabungkan keduanya dengan perintah ini.

cat citizix.fullchain.pem citizix.key > citizix.pem

Kemudian konfigurasikan HAProxy untuk menggunakan sertifikat SSL di frontend.

frontend http_front
        bind *:80
        bind *:443 ssl crt /etc/letsencrypt/live/apps.citizix.com/citizix.pem 

4. Menguji penyiapan

Dengan HAProxy dikonfigurasi dan berjalan, buka IP publik server penyeimbang beban Anda di browser web dan periksa apakah Anda terhubung ke backend dengan benar. Parameter stats uri dalam konfigurasi mengaktifkan halaman statistik di alamat yang ditentukan.

http://<Haproxy public IP>/haproxy?stats

Saat Anda memuat halaman statistik dan semua server Anda tercantum dalam warna hijau, konfigurasi Anda berhasil!

Halaman statistik berisi beberapa informasi berguna untuk melacak host web Anda termasuk waktu naik dan turun dan jumlah sesi. Jika server tercantum dalam warna merah, periksa apakah server dihidupkan dan Anda dapat melakukan ping dari mesin penyeimbang beban.

Jika penyeimbang beban Anda tidak membalas, periksa apakah koneksi HTTP tidak diblokir oleh firewall. Konfirmasikan juga bahwa HAProxy berjalan dengan perintah di bawah ini.

sudo systemctl status haproxy

5. Kata sandi melindungi halaman statistik HAProxy

Memiliki halaman statistik yang hanya terdaftar di bagian depan, bagaimanapun, terbuka untuk umum bagi siapa saja untuk melihat, yang mungkin bukan ide yang bagus. Sebagai gantinya, Anda dapat menyetelnya ke nomor portnya sendiri dengan menambahkan contoh di bawah ini di akhir haproxy.cfg Anda mengajukan. Ganti nama pengguna dan sandi dengan sesuatu yang aman.

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy\ Statistics
   stats auth username:password

Setelah menambahkan grup dengarkan baru, hapus referensi lama ke statistik uri dari grup frontend. Setelah selesai, simpan file dan mulai ulang HAProxy lagi.

sudo systemctl restart haproxy

Kemudian buka kembali penyeimbang beban dengan nomor port baru, dan masuk dengan nama pengguna dan kata sandi yang Anda atur di file konfigurasi.

http://<load balancer public IP>:8181

Periksa apakah server Anda masih melaporkan semua hijau lalu buka hanya IP penyeimbang beban tanpa nomor port apa pun di browser web Anda.

http://<load balancer public IP>/

Jika server backend Anda memiliki setidaknya halaman arahan yang sedikit berbeda, Anda akan melihat bahwa setiap kali Anda memuat ulang halaman, Anda mendapatkan balasan dari host yang berbeda.

Kesimpulan

Hanya itu saja! Dalam panduan ini, kami mempelajari cara menginstal dan mengonfigurasi HAProxy untuk memuat lalu lintas keseimbangan. Ini akan meningkatkan kinerja dan ketersediaan aplikasi web Anda.


Ubuntu
  1. Cara Menginstal dan Mengkonfigurasi Server DHCP di Ubuntu 20.04

  2. Cara Menginstal Dan Mengkonfigurasi Server Redis Di Ubuntu

  3. Cara mengonfigurasi penyeimbang beban HAProxy

  1. Cara Menginstal dan Mengkonfigurasi Server VPN Algo di Ubuntu 20.04

  2. Cara menginstal dan mengkonfigurasi Proxy Squid di Ubuntu 20.04

  3. Cara menginstal dan Mengonfigurasi penyeimbang beban HAProxy di Debian 11

  1. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 20.04

  3. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 18.04