HAProxy Nedir?
HAProxy, web trafiğini birden fazla sunucuya yönlendiren güçlü bir yazılım yük dengeleyicisidir. Büyük ve yoğun trafik altındaki siteler için mükemmel bir çözüm sunar. Eğer siteniz yoğun trafiğe sahipse ve sisteminize gelen talepler arasında dengesizlik oluyorsa, HAProxy tam da ihtiyacınız olan şey.
HAProxy Kurulumu
HAProxy kurulumu, oldukça basit ve hızlı bir işlemdir. Bunun için öncelikle sunucunuza HAProxy’yi kurmamız gerekiyor. İşte temel adımlar:
Adım 1: İlk olarak, terminali açın ve sunucunuza giriş yapın. Ardından, HAProxy’yi kurmak için aşağıdaki komutu kullanabilirsiniz.
sudo apt update
sudo apt install haproxy
Adım 2: Kurulum tamamlandığında, HAProxy’yi başlatabiliriz. Bunu yapmak için:
sudo systemctl start haproxy
Adım 3: HAProxy'nin otomatik olarak sistem başladığında çalışmaya başlamasını sağlamak için şu komutu kullanın:
sudo systemctl enable haproxy
Adım 4: HAProxy’nin doğru şekilde çalışıp çalışmadığını kontrol etmek için:
sudo systemctl status haproxy
Eğer her şey yolunda gitmişse, HAProxy kurulumunuz başarıyla tamamlanmış demektir!
HAProxy ile Load Balancing Yapma
Şimdi asıl soruya geliyoruz: HAProxy ile nasıl yük dengeleme işlemi yapabiliriz? Bunun için, yük dengeleme yapmak istediğimiz sunucuları ve gerekli konfigürasyonu belirlememiz gerekiyor.
Adım 1: Konfigürasyon dosyasını açalım. HAProxy konfigürasyonu genellikle "/etc/haproxy/haproxy.cfg" dosyasına kaydedilir. Bu dosyayı düzenlemek için:
sudo nano /etc/haproxy/haproxy.cfg
Adım 2: Şimdi, load balancing için yapılandırmamız gereken temel ayarları yapalım. Örneğin, birden fazla web sunucusuna yük dengeleme yapmak için şu ayarları yapabiliriz:
global
log /dev/log local0
log /dev/log local1 notice
maxconn 200
defaults
log global
option httplog
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http_front
bind *:80
acl url_static path_beg -i /static /images /javascript /styles
use_backend static_back if url_static
default_backend app_back
backend app_back
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check
backend static_back
balance roundrobin
server static1 192.168.1.12:80 check
server static2 192.168.1.13:80 check
Yukarıdaki örnekte, HAProxy'nin HTTP trafiğini iki farklı backend'e yönlendirdiğini görüyorsunuz. "app_back" dinamik içerikleri barındıran sunuculara (web1, web2) giderken, "static_back" statik dosyaları barındıran sunuculara (static1, static2) yönlendiriyor. Ayrıca, sunucuların sağlık durumunu kontrol eden `check` komutunu da ekledik.
Adım 3: Konfigürasyon dosyasını kaydedin ve HAProxy’yi yeniden başlatın.
sudo systemctl restart haproxy
Adım 4: HAProxy'nin düzgün çalışıp çalışmadığını kontrol etmek için şu komutla logları inceleyebilirsiniz:
sudo tail -f /var/log/syslog
Bu kadar! Şimdi HAProxy, trafiğinizi otomatik olarak belirlediğiniz sunuculara yönlendirecek. Yük dengeleme, sunucuların sağlıklı olup olmadığını da sürekli kontrol eder ve eğer bir sunucu yanıt vermezse, o sunucuyu geçici olarak devre dışı bırakır.
HAProxy ile Load Balancing'in Avantajları
HAProxy kullanmanın birçok avantajı bulunmaktadır. Bunların başında yüksek erişilebilirlik ve ölçeklenebilirlik gelir. Eğer trafiğiniz bir sunucuyu aşarsa, diğer sunucular devreye girer ve sistemin stabil kalmasını sağlar. Ayrıca, HAProxy'nin yapılandırması oldukça esnektir ve farklı load balancing algoritmaları ile ihtiyacınıza göre özelleştirilebilir.
Sonuç
HAProxy, güçlü ve esnek yapısı ile trafiği dengeleyerek web sitenizin hızlı ve güvenilir olmasını sağlar. Kurulum ve konfigürasyon oldukça basit olup, daha fazla kullanıcıyı kabul edebilecek şekilde ölçeklenebilir. Bu yazıda, HAProxy’yi nasıl kuracağınızı ve load balancing işlemini nasıl yapacağınızı detaylı bir şekilde öğrendiniz. Şimdi trafiğinizi doğru şekilde yönlendirmek için HAProxy’yi kullanabilirsiniz.