Dedicated sunucularda yük dengeleme (load balancing), web uygulamalarının yüksek erişilebilirlik ve performansını sağlamak için kritik bir adımdır.
Dedicated sunucularda yük dengeleme (load balancing), web uygulamalarının yüksek erişilebilirlik ve performansını sağlamak için kritik bir adımdır. Yoğun trafik altında sunucularınızın tek bir noktada tıkanmasını önleyerek, trafiği birden fazla backend sunucuya dağıtır. Bu makalede, dedicated bir Linux sunucusunda HAProxy kullanarak load balancer kurulumunu adım adım ele alacağız. Kurumsal ortamlar için optimize edilmiş bu yaklaşım, ölçeklenebilirlik ve güvenilirlik sağlar. Özellikle e-ticaret siteleri, API servisleri veya yüksek trafikli web uygulamaları için idealdir. Kuruluma başlamadan önce, sunucunuzun root erişimine sahip olduğunuzdan emin olun ve yedekleme yapmayı unutmayın.
Dedicated sunucunuzu load balancer için hazırlamak, sorunsuz bir kurulumun temelidir. Öncelikle, Ubuntu 20.04 veya üstü bir dağıtımı tercih edin; bu, HAProxy’nin en stabil çalıştığı ortamlardandır. Sunucunuzun en az 2 GB RAM, 2 CPU çekirdeği ve 20 GB depolama alanına sahip olması önerilir. Trafik hacminize göre backend sunucularınızı (en az iki adet) hazır tutun; bunlar load balancer’ın trafiği yönlendireceği web sunucularıdır.
Sunucuyu güncelleyin: apt update && apt upgrade -y komutunu çalıştırın. Firewall kurallarını ayarlayın; UFW kullanıyorsanız, ufw allow 80/tcp, ufw allow 443/tcp ve backend sunucularınıza erişim için ilgili portları açın (örneğin 8080). SELinux veya AppArmor gibi güvenlik modüllerini devre dışı bırakmayın, ancak HAProxy için gerekli izinleri verin. Bu aşamada, sunucunuzun statik IP adresine sahip olduğundan ve DNS kayıtlarının güncel olduğundan emin olun. Hazırlık tamamlandıktan sonra, yük dengeleme yazılımına geçebilirsiniz.
HAProxy ve bağımlılıklarını yüklemek için resmi depoları kullanın. apt install haproxy -y komutuyla kurulumu tamamlayın. Bu paket, en güncel stabil sürümü (genellikle 2.0+) getirir. Ardından, servis durumunu kontrol edin: systemctl status haproxy. Eğer etkin değilse, systemctl enable haproxy ile açılışta başlatılmasını sağlayın. Ek olarak, htop ve netstat gibi araçları yükleyerek izlemeyi kolaylaştırın: apt install htop net-tools -y. Bu adımlar, 5 dakikadan kısa sürede tamamlanır ve kurulumun temelini atar.
Backend sunucularınızı (örneğin iki adet dedicated veya VPS) web sunucusu (Nginx/Apache) ile donatın. Her birinde aynı uygulamanızı çalıştırın ve sağlık kontrolleri için /health endpoint’i ekleyin. Load balancer IP’lerini güvenlik gruplarına whitelist edin. Örneğin, backend1: 192.168.1.10:80, backend2: 192.168.1.11:80 olarak tanımlayın. Bu sunucularda log rotasyonunu etkinleştirin ve uptime’ı %99’un üzerinde tutun. Hazırlık, trafiğin dengeli dağılımını sağlar ve kesinti riskini minimize eder.
HAProxy’nin ana yapılandırma dosyası /etc/haproxy/haproxy.cfg’dir. Bu dosyayı nano veya vim ile düzenleyin. Global bölümde loglama ve user ayarlarını tanımlayın: log /dev/log local0 ve user haproxy. Defaults bölümünde timeout’ları ayarlayın: timeout connect 5000ms, client 50000ms, server 50000ms. Bu değerler, kurumsal trafik için optimize edilmiştir ve bağlantı kopmalarını önler.
Frontend ve backend bölümlerini ekleyin. Frontend için: frontend http-in bind *:80 default_backend webservers. Backend için: backend webservers balance roundrobin server backend1 192.168.1.10:80 check server backend2 192.168.1.11:80 check. Roundrobin algoritması trafiği sırayla dağıtır; alternatif olarak leastconn kullanabilirsiniz. Yapılandırmayı test edin: haproxy -f /etc/haproxy/haproxy.cfg -c. Değişiklikleri kaydedip servisi yeniden başlatın: systemctl restart haproxy. SSL için frontend’e bind *:443 ssl crt /path/to/cert.pem ekleyin.
HAProxy, roundrobin (varsayılan, adil dağılım), leastconn (en az bağlantılı sunucuya yönlendirme) ve source (IP bazlı sabit yönlendirme) gibi algoritmalar sunar. Yoğun trafikte leastconn tercih edin; örneğin balance leastconn. Health check’leri etkinleştirin: option httpchk GET /health HTTP/1.1\r\nHost:\ example.com. Bu, arızalı sunucuları otomatik devre dışı bırakır. Kurumsal kullanımda, weight parametresiyle sunucu kapasitelerini ayarlayın: server backend1 192.168.1.10:80 check weight 2. Algoritma seçimi, %30’a varan performans artışı sağlar.
Güvenlik için rate limiting ekleyin: tcp-request connection track-sc0 src http-request deny if { sc0_conns ge 100 }. Performansı artırmak üzere maxconn 50000 ayarlayın. Log formatını özelleştirin: log-format "%ci:%cp [%tr] %ft %b/%s %TR/%Tw/%Tc/%Tr/%Ta %ST %B %CC %CS %tsc %ac/%fc/%bc/%sc/%rc %sq/%bq". Bu ayarlar, DDoS saldırılarına karşı koruma sağlar ve detaylı izleme imkanı verir. Yapılandırmayı üretim öncesi staging ortamında test edin.
Kurulumu doğrulamak için curl ile test edin: curl -I http://loadbalancer-ip. Trafik dağılımını izleyin: echo "show stat" | socat stdio /run/haproxy/admin.sock. Backend’lere doğrudan erişimi engelleyin, sadece load balancer üzerinden yönlendirin. Prometheus ve Grafana entegrasyonu için stats socket’i etkinleştirin: stats socket /run/haproxy/admin.sock mode 600 level admin. Gerçek trafik simülasyonu yapın: Apache Bench ile ab -n 10000 -c 100 http://loadbalancer-ip/.
Uzun vadeli izleme için HAProxy exporter kurun ve dashboard oluşturun. Logları /var/log/haproxy.log’a yönlendirin, rotasyon ayarlayın. Performans sorunlarında CPU ve bellek kullanımını htop ile takip edin. Bu adımlar, sistemin %99.9 uptime’ını garanti eder ve proaktif bakım sağlar.
Sonuç olarak, dedicated sunucuda HAProxy ile load balancer kurmak, altyapınızı ölçeklenebilir ve dayanıklı kılar. Bu rehberi takip ederek, trafiğinizi verimli yönetebilir, kesintileri minimize edebilirsiniz. Düzenli güncellemeler ve monitoring ile kurumsal standartlarda bir sistem elde edin. Uygulamanızı canlıya almadan önce tam testleri tamamlayın ve gerektiğinde uzman desteğe başvurun.