HAProxy Nedir?
HAProxy, yüksek trafikli web sitelerinde kullanılabilecek, açık kaynak kodlu ve yüksek performanslı bir yük dengeleme aracıdır. Trafiği birden fazla sunucuya dağıtarak, sitenizin kesintisiz ve hızlı çalışmasını sağlar. Kısacası, HAProxy’nin görevi gelen web trafiğini dengeleyerek, her bir sunucuya yükü eşit bir şekilde dağıtmak.
HAProxy Kurulumu: Adım Adım Kılavuz
HAProxy’yi kurmadan önce, sunucunuzun Linux tabanlı bir işletim sistemi kullandığından emin olun. Ubuntu veya CentOS gibi popüler dağıtımlar en uygun olanlardır. Şimdi başlayalım!
1. HAProxy’nin Kurulumu
Ubuntu üzerinde HAProxy kurulumu için terminal üzerinden aşağıdaki komutu kullanabilirsiniz:
sudo apt update
Daha sonra HAProxy’yi kurmak için şu komutu çalıştırın:
sudo apt install haproxy
Kurulum tamamlandıktan sonra, HAProxy servisinin otomatik olarak başlatıldığından emin olun:
sudo systemctl enable haproxy
2. HAProxy Konfigürasyonu
HAProxy’yi kurduktan sonra, yapılandırma dosyasını düzenlemeniz gerekir. HAProxy’nin yapılandırma dosyası, "/etc/haproxy/haproxy.cfg" yolunda yer almaktadır. Şimdi bu dosyayı düzenleyelim:
sudo nano /etc/haproxy/haproxy.cfg
Burada, konfigürasyon dosyasını açtıktan sonra yapmanız gereken şey, gelen trafiği doğru sunuculara yönlendirmektir. Basit bir yapılandırma örneği şöyle olabilir:
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
server server1 192.168.1.1:80 check
server server2 192.168.1.2:80 check
Bu yapılandırma, gelen HTTP isteklerini iki farklı sunucuya (192.168.1.1 ve 192.168.1.2) yönlendirecektir. "roundrobin" dengeleme algoritması, yükü her iki sunucuya eşit şekilde dağıtır.
3. HAProxy’yi Yeniden Başlatma
Yapılandırma dosyasını düzenledikten sonra, HAProxy servisini yeniden başlatmalısınız:
sudo systemctl restart haproxy
Artık HAProxy, gelen trafiği iki sunucuya dağıtmaya başladı!
Load Balancing (Yük Dengeleme) Yapmak
HAProxy’nin temel amacı, gelen web trafiğini birden fazla sunucuya yönlendirerek, yükü dengelemektir. Yük dengeleme, hem performans hem de güvenlik açısından son derece önemlidir. HAProxy’nin sağladığı birkaç farklı algoritma ile yük dengeleme yapabilirsiniz:
1. Round Robin
Bu, en basit ve yaygın algoritmadır. Her gelen isteği sırayla bir sonraki sunucuya yönlendirir. Yukarıdaki örnekte zaten roundrobin algoritmasını kullanıyorduk.
2. Least Connections
Bu algoritma, en az bağlantıya sahip sunucuya yönlendirme yapar. Yüksek trafikli sitelerde, bu algoritma oldukça faydalıdır çünkü sunucularda yoğunluk olmadığından her zaman en hızlı şekilde işlem yapılır.
Yapılandırma örneği:
backend http_back
balance leastconn
server server1 192.168.1.1:80 check
server server2 192.168.1.2:80 check
3. Source IP Hash
Bu algoritma, kullanıcıların IP adreslerine göre yükü yönlendirir. Her kullanıcı aynı sunucuya yönlendirilir, bu sayede oturumlar kesilmeden devam eder. E-ticaret siteleri gibi uygulamalarda bu algoritma oldukça kullanışlıdır.
Yapılandırma örneği:
backend http_back
balance source
server server1 192.168.1.1:80 check
server server2 192.168.1.2:80 check
HAProxy ile SSL Desteği
Web trafiğinizin güvenliğini sağlamak için HTTPS kullanmanız önemlidir. HAProxy, SSL şifrelemesi için de yapılandırılabilir. İşte basit bir SSL yapılandırması:
frontend https_front
bind *:443 ssl crt /etc/ssl/certs/mycert.pem
default_backend http_back
Yukarıdaki yapılandırma, gelen HTTPS isteklerini HAProxy üzerinden yönlendirir ve SSL sertifikasını kullanarak şifreler.
HAProxy İzleme ve Performans İzleme
HAProxy, gerçek zamanlı izleme için oldukça güçlü bir araca sahiptir. "Stats" sayfasını kullanarak HAProxy’nin durumunu izleyebilirsiniz. Konfigürasyon dosyasına şu satırı ekleyerek bu özelliği etkinleştirebilirsiniz:
listen stats
bind *:9000
stats enable
stats uri /stats
stats auth admin:admin
Bu ayar, HAProxy’nin 9000 numaralı portunda bir izleme sayfası oluşturur ve "admin" kullanıcı adıyla erişilebilir.
Sonuç
HAProxy ile yük dengeleme yapmak, web sitenizin hızını ve güvenliğini artırmak için mükemmel bir çözümdür. Birkaç basit adım ile kurulum yaparak, trafiği etkili bir şekilde yönetebilirsiniz. HAProxy, yüksek trafikli siteler için vazgeçilmez bir araç olup, daha verimli ve güvenli bir web deneyimi sağlar. Yapılandırmalarınızda daha fazla detay ve kişiselleştirme ile site performansınızı en üst düzeye çıkarabilirsiniz!