HAProxy Nedir?
HAProxy'nin Avantajları
2. Yüksek Performans: HAProxy, saniyede yüzbinlerce bağlantıyı yönetebilecek kapasiteye sahiptir.
3. Düşük Gecikme Süresi: Hızlı yanıt süreleri ve minimum gecikme ile performansı artırır.
4. Yüksek Erişilebilirlik: Sunucu arızalarına karşı dayanıklıdır ve yüksek erişilebilirlik sağlar.
5. Esneklik: Farklı yapılandırma seçenekleri ile genişletilebilir ve özelleştirilebilir.
HAProxy Kurulumu
# 1. HAProxy'nin Kurulumu
sudo apt update
sudo apt install haproxy
Bu komut, HAProxy'yi sisteminize yükleyecektir. Kurulum tamamlandıktan sonra, HAProxy'yi başlatabilirsiniz:
sudo systemctl start haproxy
Ve son olarak, HAProxy'nin her sistem açılışında otomatik olarak başlamasını sağlamak için şu komutu girin:
sudo systemctl enable haproxy
# 2. HAProxy Konfigürasyonu
Aşağıdaki örnek yapılandırma dosyasını inceleyin:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /var/run/haproxy.sock mode 600 level admin
user haproxy
group haproxy
daemon
defaults
log global
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http_front
bind *:80
acl url_static path_beg /static /images /javascript
use_backend static_servers if url_static
default_backend app_servers
backend static_servers
balance roundrobin
server s1 192.168.1.2:80 check
server s2 192.168.1.3:80 check
backend app_servers
balance roundrobin
server s1 192.168.1.4:80 check
server s2 192.168.1.5:80 check
Bu yapılandırma dosyasının ana hatları şunlardır:
- `frontend http_front`: Gelen HTTP isteklerini dinler. Burada port 80'e bağlanan tüm istekleri karşılar.
- `backend static_servers`: `/static`, `/images` ve `/javascript` gibi statik dosyaları servis eden sunuculara yönlendirir.
- `backend app_servers`: Diğer istekleri, yani dinamik içerikleri sağlayan sunuculara yönlendirir.
- `balance roundrobin`: Trafiği sunucular arasında dengelemek için round-robin algoritmasını kullanır.
# 3. HAProxy'yi Yeniden Başlatma
sudo systemctl restart haproxy
Yük Dengeleme Türleri
- Round Robin: Trafiği eşit olarak dağıtarak her sunucuyu sırayla kullanır.
- Least Connections: Trafiği, en az bağlantıya sahip sunucuya yönlendirir.
- Source IP Hash: Trafiği, istemci IP adresine göre yönlendirir, böylece aynı istemci her zaman aynı sunucuya bağlanır.
Yukarıdaki örnekte `roundrobin` algoritması kullanıldı. Fakat ihtiyacınıza göre farklı bir algoritma seçebilirsiniz.
Yük Dengeleme Sonrası İzleme
sudo systemctl status haproxy
Ayrıca HAProxy, web tabanlı bir istatistik sayfası sunar. Yapılandırma dosyanıza şu satırı ekleyerek istatistikleri aktif edebilirsiniz:
listen stats
bind *:8080
stats enable
stats uri /stats
stats auth admin:password
Bu, 8080 portunda bir istatistik sayfası sunacak ve sadece belirtilen kullanıcı adı ve şifre ile erişilebilecektir.