Bu yazıda, HAProxy’nin ne olduğunu ve nasıl kurulup yapılandırılacağını, yük dengelemenin nasıl yapılacağını adım adım öğreneceksiniz.
HAProxy Nedir?
HAProxy (High Availability Proxy), özellikle yük dengeleme ve yüksek erişilebilirlik (high availability) için kullanılan popüler bir açık kaynak yazılımıdır. HAProxy, gelen istemci taleplerini (requests) arka plandaki birden fazla sunucuya yönlendirerek, sunucuların aşırı yüklenmesini engeller. Bu sayede web siteniz, artan trafikle baş edebilecek kapasiteye sahip olur.
HAProxy Kurulum Adımları
HAProxy’yi kurmaya başlamak için öncelikle sunucunuza SSH ile bağlanmanız gerekir. Burada Ubuntu 20.04 kullanacağız, ancak diğer Linux dağıtımları için de benzer adımlar geçerli olacaktır.
1. HAProxy'yi İndirin ve Yükleyin
İlk adım, HAProxy'yi sisteminize yüklemektir. Bunun için terminal üzerinden aşağıdaki komutu kullanabilirsiniz:
sudo apt update
sudo apt install haproxy
Yükleme tamamlandığında, HAProxy otomatik olarak başlar.
2. HAProxy Yapılandırmasını Düzenleyin
HAProxy’nin yapılandırma dosyasını düzenleyerek yük dengeleme işlemini gerçekleştireceğiz. Yapılandırma dosyasına şu komutla ulaşabilirsiniz:
sudo nano /etc/haproxy/haproxy.cfg
Burada, örnek bir yük dengeleme yapılandırması ekleyeceğiz. Dışarıdan gelen trafik, belirtilen IP adreslerine yönlendirilecektir. Şimdi, haproxy.cfg dosyasına aşağıdaki satırları ekleyin:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 2000
user haproxy
group haproxy
daemon
defaults
log global
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http_front
bind *:80
default_backend http_back
backend http_back
balance roundrobin
server web1 192.168.1.101:80 check
server web2 192.168.1.102:80 check
Burada frontend kısmı, gelen tüm HTTP trafiğini alır ve bunu backend kısmına yönlendirir. backend kısmında ise yük dengeleme yapılacak sunucular belirtilmiştir. Yük dengeleme yöntemi olarak roundrobin seçilmiştir. Bu, gelen isteklerin sunuculara sırayla yönlendirilmesini sağlar.
3. HAProxy'yi Yeniden Başlatın
Yapılandırma dosyasını düzenledikten sonra, HAProxy servisini yeniden başlatmamız gerekir:
sudo systemctl restart haproxy
4. HAProxy Durumunu Kontrol Edin
HAProxy’nin düzgün çalışıp çalışmadığını kontrol etmek için şu komutu kullanabilirsiniz:
sudo systemctl status haproxy
Eğer her şey doğru çalışıyorsa, sunucularınıza gelen trafik HAProxy aracılığıyla dağıtılacaktır.
HAProxy ile Yük Dengeleme Yöntemleri
HAProxy, farklı yük dengeleme yöntemleri sunar. En popüler yöntemler şunlardır:
- Round Robin: Bu yöntem, gelen talepleri sırayla tüm sunuculara dağıtır.
- Least Connections: Bu yöntem, en az bağlantıya sahip olan sunucuya yönlendirme yapar. Eğer bazı sunucular daha fazla yük altındaysa, diğerleri devreye girer.
- Source IP Hash: Bu yöntemde, istemcinin IP adresine göre yönlendirme yapılır. Aynı IP adresi sürekli olarak aynı sunucuya yönlendirilir.
HAProxy ile Yüksek Erişilebilirlik Sağlamak
HAProxy sadece yük dengeleme yapmaz, aynı zamanda yüksek erişilebilirlik (high availability) sağlar. Örneğin, bir sunucu arızalandığında, HAProxy diğer sağlıklı sunuculardan gelen talepleri otomatik olarak alır. Bu sayede, kullanıcılarınız her zaman hizmet alabilir.
Yüksek erişilebilirlik sağlamak için sunucuların her birine health check eklemeniz gerekir. Bu sayede HAProxy, sunucuların durumunu kontrol eder ve sorunlu sunucuları devre dışı bırakır.
Örnek Health Check Yapılandırması:
backend http_back
balance roundrobin
server web1 192.168.1.101:80 check
server web2 192.168.1.102:80 check inter 2000 rise 2 fall 3
Burada inter parametresi, her sunucunun sağlık durumunu kontrol etmek için geçen süreyi belirtir. rise ve fall ise, sunucunun sağlıklı ya da arızalı sayılabilmesi için gerekli denemelerle ilgili ayarları yapar.
Sonuç
HAProxy ile yük dengeleme, web sitenizin hızını ve güvenilirliğini artırabilir. Yüksek erişilebilirlik sağlamak, kullanıcılarınızın kesintisiz bir deneyim yaşamasını sağlar. Kurulum ve yapılandırma adımlarını takip ederek HAProxy'yi kolayca kurabilir ve etkili bir yük dengeleme çözümü elde edebilirsiniz.
Ayrıca, HAProxy’nin sunduğu farklı dengeleme yöntemleri ve sağlık kontrolü özellikleri, altyapınızı daha sağlam hale getirebilir. Bu sayede web siteniz her zaman hızlı ve erişilebilir olur.