Yük dengeleyici, gelen ağ trafiğini birden fazla sunucu veya diğer hedefler arasında dağıtan bir cihaz veya hizmettir, böylece tek bir hedef tüm yükü taşımaz. Bu hedeflerin sağlığını izler ve trafiği yalnızca sağlıklı olanlara yönlendirir. Müşteriler ile sunucular arasında yer aldığı için, arka uç günlükleri yük dengeleyicinin IP'sini kaydeder, aksi takdirde istemci IP'sini X-Forwarded-For gibi bir başlıkta geçirir.
Bu şekilde istekleri yaymak, bir uygulamanın kullanılabilirliğini ve hata toleransını artırır. NGINX, yük dengelemesini kaynak kullanımını optimize etme, verimliliği maksimize etme, gecikmeyi azaltma ve hata toleranslı yapılandırmalar sağlama tekniği olarak tanımlar.
Yaygın Yük Dengeleme Yöntemleri
- Dönüşümlü: İstekler sırayla her sunucuya gider.
- En az bağlantı: Bir sonraki istek, en az aktif bağlantıya sahip sunucuya gider.
- IP hash: İstemcinin IP adresinin bir hash'i sunucuyu seçer, böylece aynı istemci aynı sunucuya ulaşmaya devam eder, aksi takdirde o sunucu kullanılamaz. Bu, oturum sürekliliği elde etmenin bir yoludur.
- Sağlık kontrolleri: Bir sunucu arızalandığında, yük dengeleyici onu işaretler ve bir süre yeni istekler göndermekten kaçınır.
Katman 4 ve Katman 7 Yük Dengeleyicileri
Katman 4 yük dengeleyicisi, OSI modelinin taşıma katmanında çalışır ve HTTP isteğini okumadan bağlantıları yönlendirir. Katman 7 yük dengeleyicisi, uygulama katmanında çalışır, bu nedenle URL yolu, ana bilgisayar başlığı veya HTTP yöntemi gibi istek ayrıntılarına göre yönlendirme yapabilir. Katman 7 yük dengeleyicisi ayrıca isteği iletmeden önce istemci IP'sini X-Forwarded-For başlığına ekleyebilir.
SSL/TLS Sonlandırma
Bir yük dengeleyici, arka uç için SSL/TLS'yi sonlandırabilir. İstemci isteklerini şifreler ve yanıtları şifreler, bu da arka uç sunucuların yapması gereken bir işlemdir. TLS el sıkışması CPU yoğun olduğundan, bu işlem o sunuculardaki hesaplama yükünü azaltır.