Konfigurasi HAProxy basic

Pengertian

HAProxy (High Availability Proxy) adalah perangkat lunak open-source yang berfungsi sebagai Load Balancer dan Reverse Proxy yang sangat cepat dan handal. Tool ini biasanya ditaruh di depan deretan server aplikasi untuk membagi beban traffic agar tidak ada satu server pun yang kepanasan sendirian.

Konsep

Konsep utama HAProxy membagi tugas menjadi dua bagian besar: Frontend dan Backend.

  • Frontend: Sisi yang berhadapan langsung dengan user (Internet/Client). Di sini kita tentukan IP dan Port mana yang akan dibuka.

  • Backend: Kumpulan server asli (Server Pool) yang bakal memproses request dari user. HAProxy bertugas memilihkan server mana yang lagi nganggur buat nerima kiriman tersebut.

Cara Kerja

  1. Request In: User akses website lu via port 80 (HTTP) atau 443 (HTTPS).

  2. Frontend Processing: HAProxy cek konfigurasinya. Kalau user masuk lewat port 80, dia bakal dipaksa pindah ke HTTPS (Redirect).

  3. Health Check: HAProxy selalu ngecek, "Server kutoarjo sama bagelen masih hidup nggak?".

  4. Distribution: Kalau dua-duanya hidup, HAProxy bakal lempar request secara bergantian (Round Robin) ke server backend di port 8080.

Tujuan

Kenapa pakai konfigurasi di gambar lu?

  1. Terminasi SSL: HAProxy yang ngurusin sertifikat SSL, jadi server backend lu nggak perlu berat-berat proses enkripsi.

  2. Scalability: Kalau server kutoarjo mulai lambat, lu tinggal tambah server ketiga (misal: server purworejo) di backend tanpa perlu ganti IP di sisi user.

  3. Security: User nggak pernah tahu IP asli server kutoarjo/bagelen karena mereka cuma berhubungan sama IP HAProxy.

Analogi

Bayangkan HAProxy itu adalah seorang Resepsionis di kantor besar.

  • Frontend: Pintu masuk utama kantor. Resepsionis berdiri di sana menyambut tamu. Kalau ada tamu nggak pakai masker (HTTP), resepsionis suruh pakai masker dulu (HTTPS Redirect).

  • Backend: Ruangan para staff (Server). Resepsionis bakal ngatur tamu, "Tamu A silakan ke Meja 1 (Kutoarjo), Tamu B silakan ke Meja 2 (Bagelen)". Begitu seterusnya biar nggak numpuk di satu meja doang.

Kelebihan dan Kekurangan

KelebihanKekurangan
Performa sangat tinggi untuk menangani ribuan koneksi per detik.Konfigurasi file tunggal bisa jadi sangat panjang dan rumit.
Mendukung fitur Layer 7 (bisa baca isi HTTP/Header).Tidak bisa berdiri sendiri untuk HA (harus tandem sama Keepalived).
Health check yang sangat akurat dan mendetail.Jika HAProxy mati, akses ke semua server backend terputus (SPOF).

Tutorial & Problem Solving Lengkap

Berdasarkan gambar syntax yang lu kasih, berikut adalah cara implementasi dan penjelasannya.

1. Instalasi

Bash
sudo apt update && sudo apt install haproxy -y

2. Konfigurasi File

Buka file /etc/haproxy/haproxy.cfg dan masukkan syntax dari gambar lu:

Bash
# Sisi Frontend (Pintu Masuk)
frontend pub1
    bind :80                               # Buka port 80 (HTTP)
    bind :443 ssl crt /etc/haproxy/haproxy.pem alpn h2,http/1.1 # Port 443 (HTTPS) dengan sertifikat
    
    # Force user pakai HTTPS
    http-request redirect scheme https code 301 if !{ ssl_fc }
    
    # Tambah identitas proxy di header
    http-request add-header via-proxy kutoarjo
    
    default_backend app1                   # Lempar traffic ke grup app1

# Sisi Backend (Kolam Server)
backend app1
    balance roundrobin                     # Bagi beban secara adil bergantian
    
    # Daftar server tujuan dengan pengecekan kesehatan (check)
    server kutoarjo 10.20.10.83:8080 check
    server bagelen 10.20.10.84:8080 check

3. Cek Konfigurasi

Sebelum lu restart, lu wajib cek apakah ada salah ketik (typo). Gua sering nemu junior asal restart padahal konfigurasinya salah:

Bash
haproxy -c -f /etc/haproxy/haproxy.cfg
# Kalau muncul "Configuration file is valid", berarti aman.

4. Problem Solving (Common Issues)

  • SSL Handshake Error: Pastikan file .pem lu isinya lengkap (Sertifikat + Private Key + Chain).

  • Backend Down (503 Service Unavailable): Cek apakah port 8080 di server kutoarjo (10.20.10.83) memang sudah menyala dan bisa di-telnet dari server HAProxy.


Kesimpulan

Konfigurasi di gambar lu udah bagus karena udah mendukung HTTP/2 (via alpn h2) dan auto-redirect ke HTTPS. Best practice dari gua: selalu monitor statistik HAProxy lu lewat fitur stats page biar lu tahu server mana yang paling sering sibuk.


Glosarium Engineer

  • HAProxy: Software load balancer dan proxy server yang populer karena kecepatannya.

  • Frontend: Konfigurasi yang menentukan bagaimana HAProxy menerima koneksi dari client.

  • Backend: Sekumpulan server yang menerima request yang sudah diteruskan oleh HAProxy.

  • SSL Termination: Proses dekripsi traffic HTTPS di level load balancer sehingga server backend hanya menerima traffic HTTP biasa.

  • ALPN (Application-Layer Protocol Negotiation): Fitur untuk menegosiasikan protokol (seperti HTTP/2) saat jabat tangan SSL.

  • Round Robin: Algoritma pembagian beban secara bergiliran dan berurutan antar server.

  • 301 Redirect: Kode status HTTP yang menunjukkan pengalihan permanen ke alamat baru (dalam hal ini ke HTTPS).

  • Health Check: Mekanisme untuk memastikan server tujuan masih mampu melayani request.

  • Reverse Proxy: Server yang bertindak sebagai perantara bagi client untuk mengambil sumber daya dari server lain.

  • PEM File: Format file yang menggabungkan sertifikat SSL dan kunci privat dalam satu dokumen teks.

Comments

Popular posts from this blog

Apa itu Link Aggregation?

Apa Itu Port Security di Switch Cisco