Pengantar
HAProxy a penyeimbang beban . Penyeimbang beban menangani lebih banyak lalu lintas web untuk menghindari waktu henti. Ini menerima lalu lintas dari Internet atau jaringan internal Anda yang memuat penyeimbang beban layanan internal dan kemudian meneruskan lalu lintas ke web.
Manfaat menggunakan penyeimbang beban setelah digunakan di beberapa server. Penyeimbang beban dapat menyampaikan lalu lintas untuk meningkatkan kapasitas Anda dalam melayani banyak klien tanpa terhubung langsung ke setiap server. HAProxy menerima dan meneruskan lalu lintas lalu menyeimbangkan memuat di seluruh server Anda. Teknik ini melindungi server Anda yang gagal karena penyeimbang beban dapat mendeteksi jika server menjadi tidak responsif dan secara otomatis berhenti mengirimkan lalu lintas. HAProxy digunakan untuk menyeimbangkan lalu lintas ke sejumlah aplikasi web menggunakan satu konfigurasi.
HAProxy adalah penyeimbang beban dan pengontrol pengiriman aplikasi tercepat dan paling banyak digunakan. Ditulis dalam C, prosesor dan penggunaan memori yang efisien. Itu dapat berjalan di lapisan 4 (TCP) atau lapisan 7 (HTTP) dan fitur tambahan untuk memeriksa, merutekan, dan memodifikasi pesan.
Ini dibundel dengan UI web yang disebut halaman HAProxy Stats yang dapat Anda gunakan untuk memantau tingkat kesalahan, volume lalu lintas, dan latensi. Selain itu, ia memperbarui file konfigurasi tunggal, yang menyediakan sintaks untuk menentukan aturan perutean, pembatasan kecepatan, kontrol akses, dll.
Untuk menjamin layanan yang benar-benar andal, jalankan setidaknya dua instance HAProxy dengan pengaturan aktif-aktif atau siaga aktif. Pelajari cara melakukannya dengan HAProxy Enterprise dengan membaca dokumen resmi. Lihat tutorial Apache kontainer.
Saat mengonfigurasi HAProxy, biasanya mulai dengan yang berikut:
- Alamat IP dan port tertentu HAProxy untuk menerima lalu lintas;
- Server tempat HAProxy akan menyampaikan lalu lintas;
- Saat klien meminta untuk pergi ke kumpulan server.
Fitur lainnya termasuk:
- Penghentian SSL/TLS
- Kompresi Gzip
- Pemeriksaan kesehatan
- HTTP/2
- dukungan gRPC
- Skrip lua
- Penemuan layanan DNS
- Pencobaan ulang otomatis dari koneksi yang gagal
- Pencatatan verbose
Kontainer ini mendengarkan pada port 8080, tetapi kami tidak memetakan port tersebut ke host, sehingga tidak dapat dirutekan. Sebagai gantinya, kami akan menyampaikan lalu lintas ke penampung ini melalui penyeimbang beban HAProxy. Selanjutnya, mari tambahkan HAProxy di depannya. Buat file bernama haproxy.cfg di direktori saat ini dan tambahkan yang berikut ini ke dalamnya:
Dapatkan gambar HAProxy
# podman pull haproxytech/haproxy-alpine:2.4
Buat gambar khusus untuk persyaratan HAProxy Anda
# mkdir -p /haproxy/etc/haproxy/
# cd /haproxy/etc/haproxy/
# ls
Dockerfile haproxy.cfg
Buat gambar Docker untuk kebutuhan kebutuhan Anda
# cat /haproxy/etc/haproxy/Dockerfile
FROM haproxytech/haproxy-alpine:2.4
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
Buat konfigurasi haproxy pilihan Anda
# cat /haproxy/etc/haproxy/haproxy.cfg
global
stats socket /var/run/api.sock user haproxy group haproxy mode 660 level admin expose-fd listeners
log stdout format raw local0 info
defaults
mode http
timeout client 10s
timeout connect 5s
timeout server 10s
timeout http-request 10s
log global
frontend stats
bind *:8404
stats enable
stats uri /
stats refresh 10s
frontend myfrontend
bind :80
default_backend webservers
backend webservers
server s1 http-server1:8081 check
server s2 http-server2:8082 check
server s3 http-server3:8083 check
Membuat gambar haproxy
# cd /haproxy/etc/haproxy/
# podman build -t my-haproxy .
Buat server HAproxy
# podman run --name haproxy-server -p 80:80 -p 8404:8404 -d localhost/my-haproxy
Buat pod untuk setiap server web
Server Apache
# podman pull centos/httpd-24-centos7
# podman pod create --name httpapp1 -p 8081:8080 --network bridge
# podman run --pod httpapp1 --name http-server1 -v /wwwdata1:/var/www:Z -d centos/httpd-24-centos7
# podman pod create --name httpapp2 -p 8082:8080 --network bridge
# podman run --pod httpapp2 --name http-server2 -v /wwwdata2:/var/www:Z -d centos/httpd-24-centos7
# podman pod create --name httpapp3 -p 8083:8080 --network bridge
# podman run --pod httpapp3 --name http-server3 -v /wwwdata3:/var/www:Z -d centos/httpd-24-centos7
Kesimpulan
HAProxy di dalam container dapat menyederhanakan penerapan dan manajemen siklus hidupnya. Menyediakan standar untuk menyebarkan aplikasi, membuat proses dapat diulang dan diuji. Overhead CPU untuk menjalankan dapat diabaikan, dapat menimbulkan jaringan tambahan, akan berdampak tergantung pada kasus penggunaan dan kebutuhan throughput Anda.
A cukup buat file konfigurasi HAProxy dan kemudian panggil perintah podman run dengan nama image HAProxy. HAProxy Technologies menyediakan gambar terbaru.
HAProxy Enterprise mendukung aplikasi modern pada skala apa pun dan di lingkungan apa pun, memberikan kinerja, observabilitas, dan keamanan terbaik untuk bantuan penting Anda. Anda dapat memanfaatkan fitur-fitur mutakhir dan rangkaian add-on perusahaan, yang didukung oleh dukungan ahli yang otoritatif dan layanan profesional.