HAProxy Nedir?
HAProxy (High Availability Proxy), yüksek performanslı ve ölçeklenebilir bir yük dengeleme yazılımıdır. Hem HTTP hem de TCP trafiğini yönetebilen bu araç, genellikle büyük ölçekli web uygulamalarında kullanılır. Web sitenize gelen istekleri birden fazla sunucuya yönlendirerek, hem sistemin performansını artırır hem de olası sunucu arızalarına karşı dayanıklılığı sağlar.
HAProxy Nasıl Kurulur?
İlk adım, HAProxy'nin sisteminize kurulumu olacaktır. Linux sunucunuzda bu işlemi nasıl yapacağınızı adım adım inceleyelim.
sudo apt update
sudo apt install haproxy
Kurulum tamamlandığında, HAProxy servisinin çalıştığından emin olmak için şu komutu verebilirsiniz:
sudo systemctl start haproxy
HAProxy Konfigürasyonu
HAProxy'yi kurduktan sonra, en önemli adım konfigürasyonu yapmaktır. Bu adımda, trafiğin nasıl yönlendirileceğini belirleyeceğiz.
HAProxy’nin konfigürasyon dosyası genellikle `/etc/haproxy/haproxy.cfg` yolunda bulunur. Bu dosyayı açarak ayarları yapmaya başlayalım:
global
log 127.0.0.1 local0
maxconn 200
defaults
log global
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http_front
bind *:80
acl is_www hdr(host) -i www.orneksite.com
use_backend app1_back if is_www
backend app1_back
balance roundrobin
server app1 192.168.1.1:80 check
server app2 192.168.1.2:80 check
Yukarıdaki konfigürasyon, gelen HTTP trafiğini `app1` ve `app2` adlı iki sunucuya eşit olarak dağıtarak yüksek kullanılabilirlik sağlar. Burada `roundrobin` algoritması kullanıldı; ancak ihtiyaca göre farklı dengeleme algoritmaları da kullanılabilir.
Load Balancing Yapmak
Şimdi yük dengelemenin mantığına gelelim. HAProxy, gelen istekleri belirli kurallara göre birden fazla sunucuya yönlendirir. Yük dengeleme için birçok algoritma bulunur. Bunlar arasında en yaygın kullanılanları şunlardır:
- Round Robin: İstekleri sırayla her sunucuya gönderir. Bu, eşit bir yük dağılımı sağlar.
- Least Connections: En az bağlantıya sahip sunucuya istek gönderir. Bu, sunucuların dengeli bir şekilde çalışmasını sağlar.
- Source IP Hash: İstemci IP adresine göre yönlendirme yapar. Bu, aynı istemcinin her zaman aynı sunucuya yönlendirilmesini sağlar.
Konfigürasyon dosyasında, `balance` direktifi ile bu algoritmalardan birini seçebilirsiniz:
backend app1_back
balance leastconn
server app1 192.168.1.1:80 check
server app2 192.168.1.2:80 check
HAProxy’yi Yeniden Başlatmak
Konfigürasyon dosyasını düzenledikten sonra, HAProxy'yi yeniden başlatmak gerekecektir. Bunun için şu komutu kullanabilirsiniz:
sudo systemctl restart haproxy
HAProxy İzleme ve Yönetim
HAProxy'yi çalıştırırken, trafiği izlemek önemlidir. `/var/log/syslog` dosyası üzerinden logları takip edebilir ve trafiği analiz edebilirsiniz. Ayrıca, HAProxy'nin web tabanlı bir yönetim paneli de vardır. Bu paneli aktif hale getirmek için şu adımları izleyebilirsiniz:
frontend stats
bind *:9000
stats enable
stats uri /haproxy_stats
stats auth admin:admin
Bu ayar sayesinde, HAProxy yönetim paneline `http://sunucu-ip:9000/haproxy_stats` üzerinden erişebilirsiniz.
Sonuç
HAProxy ile yük dengeleme yapmak, web sitenizin performansını artırmak ve olası trafik artışlarıyla başa çıkabilmek için mükemmel bir çözüm sunar. Basit kurulumuyla güçlü özellikler sunan HAProxy, daha stabil ve hızlı bir web deneyimi oluşturmanıza yardımcı olacaktır.