HAProxy nedir?
HAProxy, gelen TCP ve HTTP bağlantılarını arkadaki birden çok sunucuya dağıtan açık kaynaklı bir yük dengeleyici ve ters vekil yazılımıdır. Sunucuların sağlık durumunu izler, arızalı olanı devreden çıkarır ve trafiği sağlam sunuculara yönlendirir. Düşük kaynak tüketimi ve yüksek bağlantı kapasitesiyle bilinir.
Tek bir uygulama sunucusunun yetmediği ya da kesintisiz çalışmanın istendiği yapılarda giriş noktası olarak kullanılır. Böylece kullanıcılar tek bir adrese bağlanır, arka planda kaç sunucu olduğunu bilmez.
Nasıl çalışır?
Yapılandırma dosyasında üç temel kavram bulunur: bağlantıların karşılandığı frontend, hedef sunucu havuzunu tanımlayan backend ve sunuculara dağıtım yöntemi. Dağıtım için döngüsel (roundrobin), en az bağlantı (leastconn) ya da kaynak adrese göre (source) gibi algoritmalar seçilebilir.
Sağlık kontrolleri belirli aralıklarla sunuculara istek göndererek yanıt verip vermediklerini sınar. HAProxy ayrıca TLS sonlandırma, HTTP başlığı ekleme, ACL ile kural tabanlı yönlendirme ve bağlantı sınırlama gibi işleri de yapabilir.
Sunucu ve hosting ortamında
Hosting altyapılarında HAProxy genellikle web sunucularının önünde, veritabanı kümelerinin önünde ya da e-posta ve diğer TCP servislerinin önünde çalışır. Yüksek erişilebilirlik için çoğunlukla Keepalived gibi bir araçla birlikte, iki HAProxy düğümü ortak bir sanal IP üzerinden kurulur. Yapılandırma değişikliği öncesinde haproxy -c -f ile sözdizimi denetlenir.
Nasıl korunulur?
- İstatistik sayfasını ve yönetim soketini internete açmayın; parolayla ve IP kısıtlamasıyla koruyun.