HAProxy'de Etkili Durum Denetimleri Nasıl Uygulanır?

Haproxy De Etkili Durum Denetimleri Nasil Uygulanir



Etkili sunucu durumu kontrollerini dikkate almazsanız, HAProxy'nizi yük dengeleyiciniz olarak görev yapacak şekilde ayarlamak eksik kalır. Durum kontrollerinin uygulanması, uygulamanın güvenilirliğini ve kullanılabilirliğini artırmaya yardımcı olur. HAProxy, arka uç sunucularının sağlık durumlarının kullanıma uygun olup olmadığını belirlemek için kontrol eden sağlık kontrollerinin uygulanmasını destekler.

Yalnızca sağlık kontrollerini geçen sunucular rotasyona eklenir. Bu şekilde, sağlık kontrolünden geçemeyen bir sunucu kullanım için seçilmez ve kesinti olasılığı en aza indirilir. Bu yazı boyunca HAProxy'deki durum kontrollerinin nasıl çalıştığını ve etkili bir durum kontrolünü uygulamak için ne gerektiğini daha derinlemesine inceleyeceğiz. Hadi başlayalım!

HAProxy'de Sağlık Kontrolleri Nelerdir?

HAProxy'yi yapılandırırken görevlerden biri, uygulamanız için hangi arka uç sunucularının kullanılacağını belirlemektir. Bu şekilde, herhangi bir sunucunun aşırı yüklenmesini önlemek için trafik sunuculara dağıtılacaktır. Ancak durum denetimleri, bir sunucunun yalnızca uygunsa trafiği işlemek için seçildiğini belirlemeye yardımcı olur.







Her sunucuda sağlık kontrolleri yapılır ve yalnızca başarılı olanlar yük dengelemede kullanılmak üzere rotasyona eklenir. Durum kontrolleri, TCP veya HTTP gibi isteklerin arka uç sunucunuzdaki önceden tanımlanmış bir uç noktaya gönderilmesiyle gerçekleştirilir. Arka uç sunucusu tarafından geri gönderilen sağlık sonuçları, durumunu belirler. Örneğin, sunucunun durumu YUKARI veya AŞAĞI gösterebilir veya sunucunun sağlıklı olduğunu onaylayan bir tamam 200 durumu gönderebilir.



Durum denetimlerini yapılandırırken, durum denetimleri için kullanılacak önceden tanımlanmış bir uç noktaya sahip olduğunuzdan emin olun. Uç noktanızı ayarlamak için kullanabileceğiniz farklı seçenekler vardır. Örneğin sunucunun durumuna bağlı olarak bir durum kodu veya mesaj döndürebilirsiniz. Tüm durum kontrolleri HAProxy yapılandırma dosyanızın arka uç bölümünde tanımlanır. Yapılandırma dosyasını açın ve ön uç bölümünüzü oluşturun.



$ sudo nano /etc/haproxy/haproxy.cfg

Burada 80 numaralı bağlantı noktasını bağlayan, bir istatistik sayfası ayarlayan ve varsayılan arka ucu belirten bir ön uç bölümünün temel bir örneğini bulabilirsiniz.





Bir sonraki adım arka uç bölümünü oluşturmaktır. Aşağıda HAProxy'de etkili bir durum denetiminin nasıl uygulanacağına ilişkin farklı örnekler verilmiştir.



Örnek 1: Etkili Aktif Durum Denetimlerinin Uygulanması

HAProxy'de durum denetimlerini uygulamanın basit bir yolu, etkin durum denetimlerini ayarlamaktır. Bu seçenekle HAProxy sunucuya bağlanmayı deneyecektir. Yanıt gönderilmezse sunucunun sağlıksız olduğu kabul edilir ve rotasyondan çıkarılır. Aktif durum kontrollerini uygulamanın varsayılan yolu, HAProxy'nin hepsini kontrol etmesi için her sunucu satırına “check” anahtar sözcüğünü eklemektir.

Bu ilk örnek işe yarasa da durum kontrollerini uygulamanın en iyi yolu değildir. Ayrıca varsayılan ayarları kullanır. Örneğin inter olarak işaretlenen kontroller arasındaki aralık iki saniyeye ayarlanmıştır. İzin verilen başarısız kontrollerin sayısı olan düşüş üçe ayarlandı. Bu ayarları yapmak için aşağıdaki örnekte gösterildiği gibi tercih edilen ara süreyi ve kontrol sayısını belirtin:

Örnek 2: HTTP Durum Denetimi Uygulama

Bir HTTP sağlık kontrolü ile HAProxy, “check” anahtar kelimesiyle tüm sunuculara bir HTTP isteği gönderecektir. Yanıta göre sunucunun durumu sonucuna varılır. Başarılı sunucu yanıtlarının örnekleri 2xx veya 3xx aralığındadır. 200 OK gibi bir yanıt, sunucunun iyi durumda olduğu anlamına gelir.

Bu örnek için arka ucunuza “option httpchk” satırını ekleyin.

Örnek 3: Bir GET İsteğiyle Çalışmak

HAProxy, HTTP isteğinde bulunurken “/” yoluna bir GET isteği gönderir. Ancak uç noktanızı başka bir yolda yapılandırdıysanız, “/health” gibi URL yolunu belirtebilirsiniz; HAProxy, GET isteğini ona gönderecektir.

Sunucu, uç noktanıza bağlı olarak sunucunun durumunu belirlemek için yanıtı kullanacaktır. Bunu nasıl uygulayacağınız aşağıda açıklanmıştır:

Örnek 4: GET İstek Yolunu ve Yanıt Durumunu Belirtme

Bir uç noktayla, sunucunun durumunu belirlemek için uç nokta GET isteğinden hangi başarılı yanıtın bekleneceğini belirtebilirsiniz. Bu örnekte, GET istek yolumuz '/health'tir ve sunucunun yük dengeleme ve diğer görevleri yerine getirmek için sağlığının iyi olduğunu doğrulamak için 200 yanıt durumunun gelmesini bekliyoruz.

HAProxy yapılandırma dosyanızı değiştirdikten sonra, değişikliklerin etkili olması için HAProxy'yi yeniden başlatın.

Bu kadar! HAProxy'nize etkili sağlık kontrollerini uyguladınız. Durum kontrollerinin beklendiği gibi çalıştığını doğrulamak için aşağıdaki komutla istatistikler sayfasına erişebilir veya günlük dosyasını kontrol edebilirsiniz:

$ tail -f /var/log/haproxy.log

Çözüm

HAProxy'de etkili bir sağlık kontrolünü farklı şekillerde uygulayabilirsiniz. Durum kontrolleri HAProxy yapılandırma dosyasının arka uç bölümünde uygulanır ve bu gönderide bunun nasıl yapılacağına dair farklı örnekler verilmiştir. İdeal yönteminizi kontrol edin ve HAProxy'de rahatça etkili bir sağlık kontrolü uygulayın.