Bu yazımızda bir web sunucunun HTTP Load Balancer olarak
nasıl konfigüre edileceğini ele alacağız. Buradaki amacımız yük altında kalan
sunucularımızın hizmet kesintisine uğramasını elimizden geldiğince engellemek
olacak.
web sunucular üzerinde gerçekleştireceğiz. Yazıda bahsedeceğimiz LB
ayarları temel düzeyde konfigürasyonları
içerecek. Benzer ayarlar Apache web sunucular üzerinde de
gerçekleştirilebilir.
diğer ikisi bu LB arkasında çalışan web sunucular olarak ayarlanacak.
Nginx LB metodlarından round robin adı verilen metodu
kullanarak işlemlerimizi gerçekleştireceğiz.
192.168.2.222, 192.168.2.223, 192.168.2.224 IP adreslerini atıyorum. Yapılan
işlemin daha iyi anlaşılabilmesi için Web sunucuların isimlerini web01 ve web02
olarak değiştiriyorum. Ayrıca html sayfalarına da bu isimleri ekleyerek
gönderilen isteklerin hangi sunucuya gittiğinin anlaşılmasını kolaylaştırmaya
çalıştım.
izlenebilir;
Load Balancer Ayarı
kullanarak bir yük dengeleme yapmaya çalışacağız. Round-robin metodu kısaca
isteklerin belirtilen IP adreslerine eşit veya sizin belirlediğiniz yüke göre
dağıltılmasını sağlayan metoda verilen isimdir.
ikinci istek 224 adresine gidecek ve HTTP üzerinden gelen isteklerin dağılımı
sağlanacak. Bu konfigürasyon için aşağıdaki adımlar izlenebilir;
erişebiliriz.
açıyoruz. Sadece senaryomuza uygun olan bilgileri girmek için ayarlara başlamadan önce bu dosyada
bulunan bilgileri temizledim.
Aşağıdaki resimde görüldüğü gibi öncelikle senaryomuz için isteklerin
dağıtılacağı sunucu adreslerimizi bir blog halinde tanımlıyoruz. Bu işlem için
“upstream” parametresi ve bu parametreden sonra gelecek bir isim belirtmemiz
gerekiyor.
Sunucu bloglarımızı tanımladıktan sonra isteklerin hangi
port üzerinden hangi dizine gideceğini aşağıdaki gibi server blogu altına
tanımlıyoruz. Burada gelen tüm isteklerin daha önce belirlediğimiz sunuculara
dağılması için “proxy_pass” parametresi ve bir önceki ayarda tanımladığımız
ismi başına “http” koyarak buraya ekliyoruz.
İşlemleri tamamladıktan sonra konfigürasyonu dosyasını
kaydedip editörden çıkıyoruz.
Yaptığımız konfigürasyonun aktif hale gelmesi için aşağıdaki komutu
kullanabiliriz. Eğer bir hata olursa nginx servisi bu komut çalıştırılırken
size bilgi verecektir.
konfigürasyonlarımızı test edebiliriz.
oluşturarak test ettim. Bu işlem için “curl” komutu kullanılabiliriz.
başında içeriğini düzenlediğimiz Web01 sunucusu yanıt veriyor.
edebiliriz. Aşağıda görüldüğü gibi web01 sunucusuna gelen istek 192.168.2.222
LB olarak konfigüre ettiğimiz sunucudan gelmiş durumda.
Web01 isimli sunucumuza gelen isteği teyit ettikten sonra
aynı IP adresine bir istek daha yapıyoruz.
Bu sefer isteğimize cevap Web02 sunucumuzdan geldi. Şimdi
bir önceki istekte olduğu gibi erişim loglarını kontrol edelim.
192.168.2.222 üzerinden gelmektedir.
Sürekli oluşturulan http isteklerinde loglar aşağıdaki gibi
görünecektir. Gönderilen istekler bu şekilde iki sunucu üzerine dağıtılacak ve web
sunucularınıza binen yük dengelenmiş olacaktır.