HAProxy ile Yük Dengeleme (Load Balancing) Nasıl Yapılır? Adım Adım Rehber

Bu yazı, HAProxy kullanarak yük dengeleme işlemini adım adım öğrenmek isteyenler için kapsamlı bir rehberdir. HAProxy kurulumu ve yapılandırması hakkında detaylı bilgi edinmek isteyenler için hazırlanmıştır.

BFS

HAProxy, internet dünyasında en çok tercih edilen ve en güçlü yük dengeleme çözümlerinden biridir. Eğer birden fazla sunucuya sahip bir web uygulamanız varsa ve trafiği bu sunucular arasında etkili bir şekilde dağıtmak istiyorsanız, HAProxy sizin için biçilmiş kaftan!

Bu yazımızda, HAProxy’yi nasıl kuracağınızı ve sunucular arasında yük dengelemesi yaparak web trafiğinizi nasıl optimize edeceğinizi adım adım keşfedeceğiz. Hadi, hem öğretici hem de eğlenceli bu yolculuğa başlayalım!

HAProxy Nedir?



İlk olarak, HAProxy'nin ne işe yaradığından kısaca bahsedelim. HAProxy, açık kaynaklı bir yazılım olup, HTTP ve TCP trafiğini dengelemek için kullanılır. Web uygulamalarının trafiğini birden fazla sunucuya dağıtarak, yüksek erişilebilirlik sağlar ve sunucularda yaşanabilecek aşırı yük durumlarının önüne geçer. Yani, çok fazla ziyaretçiye sahip bir web sitesi yönetiyorsanız, HAProxy trafiği eşit şekilde dağıtarak kesintisiz bir deneyim sunmanıza yardımcı olur.

HAProxy Kurulumuna Başlayalım!



İlk adım, HAProxy'yi kurmak. Linux sunucunuzda bunu yapmaya ne dersiniz? Merak etmeyin, oldukça basit ve kısa bir işlem!

Adım 1: Terminal üzerinden HAProxy’yi kurmak için şu komutu kullanın:


sudo apt update
sudo apt install haproxy


Bu komutlar, HAProxy’yi sisteminize yükleyecek. Kurulum tamamlandıktan sonra, HAProxy servisini başlatmak için şu komutu yazabilirsiniz:


sudo systemctl start haproxy


Adım 2: HAProxy’nin her sistem açılışında otomatik olarak başlamasını sağlamak için:


sudo systemctl enable haproxy


Bunları yaptıktan sonra HAProxy’nin kurulumunun başarılı bir şekilde tamamlandığını söyleyebiliriz.

HAProxy Yapılandırma Dosyasını Düzenleme



HAProxy, yapılandırma dosyasını /etc/haproxy/haproxy.cfg yolunda bulundurur. Şimdi, yapılandırma dosyasını düzenleyerek yük dengeleme yapalım.

Adım 3: Yapılandırma dosyasını açmak için şu komutu yazın:


sudo nano /etc/haproxy/haproxy.cfg


Yapılandırma dosyası açıldığında, burada ihtiyacınız olan birkaç temel ayarı yapılandırmanız gerekecek.

Örneğin, HTTP yük dengelemesi yapmak istiyorsanız, şu örneği dikkate alabilirsiniz:


global
    log /dev/log local0
    log /dev/log local1 notice
    maxconn 200

defaults
    log     global
    option  httplog
    option  dontlognull
    timeout connect 5000ms
    timeout client  50000ms
    timeout server  50000ms

frontend http_front
    bind *:80
    acl url_app1 path_beg /app1
    acl url_app2 path_beg /app2
    use_backend app1_backend if url_app1
    use_backend app2_backend if url_app2

backend app1_backend
    balance roundrobin
    server app1_server1 192.168.1.10:80 check
    server app1_server2 192.168.1.11:80 check

backend app2_backend
    balance roundrobin
    server app2_server1 192.168.1.12:80 check
    server app2_server2 192.168.1.13:80 check


Ne yaptık?
Yukarıdaki yapılandırmada, HAProxy ön yüzünde iki farklı uygulama yolu (app1 ve app2) tanımladık. Trafiği, bu yolları kullanarak yönlendiriyoruz ve her bir uygulama için farklı backend sunucular belirliyoruz. Yük dengelemesi için round-robin yöntemi kullanıldı; yani her sunucu sırayla istekleri alacak.

Adım 4: Yapılandırma dosyasını kaydedip çıkın. Şimdi, HAProxy'yi yeniden başlatarak bu ayarları etkinleştirebilirsiniz:


sudo systemctl restart haproxy


Yük Dengeleme Türleri



HAProxy ile farklı yük dengeleme yöntemleri kullanabilirsiniz. En yaygın olanları şunlardır:

1. Round Robin: İstekler sırayla her sunucuya gönderilir. Basit ve etkili bir yöntemdir.
2. Least Connections: En az bağlantısı olan sunucuya istek gönderilir. Bu, trafiğin daha dengeli bir şekilde dağılmasını sağlar.
3. Source IP Hashing: Belirli bir istemci IP’si her zaman aynı sunucuya yönlendirilir. Bu, oturum yönetimi gereksinimlerini karşılamak için idealdir.

HAProxy ile İzleme ve Günlükleme



HAProxy'nin sağlıklı çalışıp çalışmadığını izlemek önemlidir. Bunun için HAProxy'nin günlükleme özelliklerinden faydalanabilirsiniz. Yapılandırma dosyanızda şu satırları ekleyerek loglama yapabilirsiniz:


global
    log /dev/log local0


Bu sayede, tüm işlemler kaydedilecek ve herhangi bir sorun olduğunda inceleme yapabileceksiniz.

HAProxy ile Trafiği Yönlendirme



Yük dengeleme sadece sunucular arasında değil, aynı zamanda trafiğin farklı türlerine göre de yapılabilir. Örneğin, mobil cihazlardan gelen trafiği farklı bir backend’e yönlendirmek isteyebilirsiniz. Bunun için frontend kısmında aşağıdaki gibi bir ACL (Access Control List) kullanabilirsiniz:


frontend http_front
    bind *:80
    acl is_mobile hdr_sub(user-agent) -i Android
    use_backend mobile_backend if is_mobile
    default_backend default_backend


Bu yapılandırmada, Android cihazlardan gelen istekler otomatik olarak farklı bir backend'e yönlendirilir.

Sonuç



HAProxy kurulumundan yapılandırmasına kadar her şeyi ayrıntılı şekilde inceledik. Şimdi, web uygulamanızın trafiğini etkili bir şekilde dengeleyebilir ve sistem kaynaklarınızı daha verimli bir şekilde kullanabilirsiniz. Yük dengeleme, özellikle yüksek trafikli siteler için hayati önem taşır, ve HAProxy tam da bu noktada devreye girer!

Açık kaynaklı ve ücretsiz olan HAProxy, güçlü yapılandırma seçenekleri ile size büyük esneklik sağlar. İster küçük ölçekli projeler, ister büyük ölçekli uygulamalar, HAProxy ile her tür trafiği kolayca yönetebilirsiniz.

Açık kaynaklı yazılımlara olan bu yolculuk, hayalinizdeki hızlı ve güvenilir altyapıyı oluşturmanıza olanak sağlar. Artık HAProxy ile yük dengeleme yapmayı öğrendiniz, peki ya sonraki adım? Trafiğinizi nasıl daha verimli hale getirebilirsiniz? Hadi, bir sonraki yazıda buluşalım!

İlgili Yazılar

Benzer konularda diğer yazılarımız

SEO ve Podcast: Sesli İçerikler ile Web Trafiğini Nasıl Artırırsınız?

Bir sabah kahvenizi yudumlarken, kulağınızda bir podcast açıyorsunuz. Konu belki de uzay araştırmalarından, belki de dijital pazarlamanın inceliklerine kadar uzanıyor. Sesli içerikler, her geçen gün daha fazla kişiye ulaşmanın ve kitlelerin ilgisini çekmenin...

DirectAdmin Nasıl Kurulur ve Yapılandırılır?

DirectAdmin Nedir ve Neden Kullanılır?Merhaba arkadaşlar! Bugün, birçok web yöneticisinin en çok tercih ettiği kontrol paneli olan DirectAdmin’i nasıl kuracağımızı ve yapılandıracağımızı keşfedeceğiz. İlk başta, DirectAdmin nedir, biraz ondan bahsedelim.DirectAdmin,...

Cronjob 'Not Running' Hatası ve Çözümü: Sorunları Çözmenin Adımları

Bir sabah işinize başlamadan önce, otomatik olarak çalışması gereken bir cronjob’ın neden çalışmadığını düşündünüz mü? Ne yazık ki, bu tür sorunlarla karşılaşmak oldukça yaygın, ancak çözümü de bir o kadar basit olabilir. Eğer siz de cronjob 'Not Running'...