HAProxy
HAProxy - Background
HAProxy adalah perangkat lunak open-source yang berfungsi sebagai load balancer dan proxy server. Diciptakan oleh Willy Tarreau pada tahun 2000, HAProxy awalnya dirancang untuk menangani pengaturan lalu lintas di lingkungan web yang sangat membutuhkan performa tinggi dan keandalan, seperti e-commerce dan aplikasi web skala besar.
Fitur Utama HAProxy :
- Load Balancing : HAProxy mendukung load balancing dengan berbagai algoritma pemilihan server (server selection algorithms) seperti round-robin, least connections, dan weighted least connections. Ini memungkinkan distribusi lalu lintas yang optimal di antara server-server backend.
- Proxying : Sebagai reverse proxy, HAProxy menerima semua permintaan dari klien dan memutuskan ke server backend yang sesuai, serta meneruskan respons dari server backend ke klien.
- SSL Termination : HAProxy mampu menangani SSL termination (penghapusan SSL), mengenkripsi lalu lintas dari klien ke HAProxy dan kemudian mendekripsi dan meneruskannya ke server backend.
- Health Checks : HAProxy menyediakan mekanisme untuk memeriksa kesehatan (health check) server-server backend secara berkala. Ini memungkinkan HAProxy untuk secara otomatis mengarahkan lalu lintas hanya ke server yang sehat.
- Konfigurasi Fleksibel : Konfigurasi HAProxy menggunakan file teks yang dapat disesuaikan, memungkinkan administrator untuk mengatur pengaturan sesuai dengan kebutuhan spesifik aplikasi dan lingkungan operasional.
- Performa Tinggi : HAProxy terkenal karena kinerja tinggi dan efisiensinya dalam menangani banyak koneksi secara simultan dengan sumber daya yang minimal.
Penggunaan Umum HAProxy :
- Load Balancer: Sebagai solusi load balancing untuk mengelola lalu lintas web dan memastikan ketersediaan aplikasi.
- Reverse Proxy : Menyembunyikan infrastruktur backend dari pengguna dengan menangani semua permintaan HTTP dan HTTPS.
- SSL Offloading : Memproses SSL secara sentral untuk mengurangi beban pada server backend.
- Aplikasi Mikroservice : Cocok untuk arsitektur mikroservice dengan kemampuan untuk mendistribusikan lalu lintas ke berbagai instance layanan yang berbeda.
HAProxy telah menjadi pilihan utama bagi banyak organisasi untuk mengatasi tantangan dalam penanganan lalu lintas web dan meningkatkan ketersediaan dan performa aplikasi mereka. Dengan dukungan komunitas yang kuat dan kontribusi berkelanjutan, HAProxy terus berkembang dan menawarkan solusi yang dapat diandalkan bagi infrastruktur IT modern.
HAProxy - Install HAProxy Ubuntu
1. Kunjungi Website Resmi HAProxy https://www.haproxy.org/
2. Pilih versi yang diinginkan, contoh yang digunakan versi 3.0
3. Memperbarui Sistem
apt update && apt upgrade -y
4. Tambah Repository, contoh disini menggunakan versi 3.0
add-apt-repository ppa:vbernat/haproxy-3.0
5. Update kembali
apt update
6. Install Haproxy
apt install haproxy -y
7. Check versi, pastikan sesuai dengan versi yang diinginkan.
haproxy -v
8. Start service HAproxy
systemctl restart haproxy
9. Mengaktifkan service otomatis setiap kali server dinyalakan.
systemctl enable haproxy
10. Selesai
HAProxy - Default Config
Default Configuration
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http