HAProxy, RoundRobin Ayarlamaları

Selamlar arkadaşlar, bu yazımda size HAProxy ile Round Robin algoritması hakkında yazacağım.

Nedir bu Round Robin :

Load Balancing (Yük Dengeleme) algoritmalarından biri olan Round Robin, Sunucuları sıralı olarak seçen ve trafiği bu sırayla paylaşılmasını sağlayan algoritmadır.

Bu yazımda ise tam olarak bunun örneğini yapacağımız bir conf. oluşturacağım arkadaşlar.

İlk olarak bir Ubuntu 20.04 cihazım ve üzerinde HAProxy kurulumu yapıldı. Sizde kurulumu yapmak isterseniz buraya tıklayabilir ve kurulum sayfasına ulaşabilirsiniz.

– İlk olarak HAProxy Conf. Dosyalarını Açıklayarak Başlıyorum :

> nano /etc/haproxy/haproxy.conf

Dosyasına gidiyoruz ve Defaults alanında bir kaç değişiklik yapıyoruz. Buradaki bazı alanları açıklamak gerekirse.

HAProxy, HTTP veya TCP olarak iki farklı modda çalışabilir. TCP modda çalışırken OSI Katman 4 proxy gibi çalışırken, HTTP modunda çalışırken ise Katman 7 yi kullanır. Farkını anlamak adına OSI katmanını öğrenmek gerekir.

Bu örneğimde ise HTTP ile ilerliyoruz. HTTP header, URL path ve Cookie’lere göre yönlendirmeler yapabilirsiniz. Yük dengeleme yapacağınız sistemler için daha ideal bir mod’dur.

HTTP mesajlarında değişiklik yapabilme, Health Check, İstek limitleri belirleme, Kimlik doğrulamaları yapmak gibi özellikleride burada kullanabilirsiniz.

> mode http 

Conf dosyasına mode http yazmanız yeterli olacaktır.

> timeout connect 5s

HAProxy’nin Backend sunucularına bağlanmaya çalışırken ne kadar bekleyeceğini belirtiriz.

> timeout client 10s

HAProxy’nin bir istemcinin veri göndermesi için ne kadar süre beklemesi gerektiğini belirtiriz.

> timeout server 10s

HAProxy’nin sunuculardan alacağı geri bildirimleri ne kadar süre bekleyeceğini belirtiriz.

> timeout http-request 10s

İstemcinin eksiz bir HTTP isteğini göndermesi için ne kadar süre beklenileceğini belirtiriz.

Önceki yazılarımda olduğu gibi Frontend ve Backendlerimizi ayarlıyoruz.

Frontend tarafında bulunan;

> bind 127.0.0.1:80

İsteklerin localhost adresine 80 portundan geleceğini belirtiyoruz.

> option forwardfor

Parametresini Frontend yada Backend tarafında yazabilirsiniz. Bu parametre Client Source IP’ni de ilet anlamındadır. Bu parametreyi yazmazsanız istemcinin kaynak ip adresini alamazsınız.

Backend tarafında bulunan;

> balance roundrobin

Parametremiz ile isteğin sırayla sunuculara iletilmesi gerektiğini bildiriyoruz.

> server server1 127.0.0.1:8000 

Parametreleri ile ise server1, 2 ve 3 ekleyerek hangi sırayla veriyi ileteceğini belirtiyoruz. Port numaralarına göre tek tek serverlarımızı yazıyoruz.

> systemctl restart haproxy

Restart atmayı unutmayın ayarlamalarınız aktif olabilmesi için.

– Yapılan işlemi test edelim :

Test kısmında ise Python HTTP Server oluşturup Port numaralarını değiştirerek yayına başlattım ve ardından istekleri Firefox üzerinden göndererek test ettim.

Istekleri atmaya başladığımda ise HTTP Serverlar da loglarını gördüm ve sıralı bir şekilde iletildiler.

Bir yazımın daha sonuna geldik arkadaşlar. Umarım yararlı olmuştur sizler için. Yorum ve görüşlerinizi aşağıdaki yorumlar kısmından bana iletmeyi unutmayın lütfen. Destekleriniz için ise Youtube kanalıma abone olmanızı rica ederim. Herkese kolaylıklar dilerim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir