Arka Uçlar (Backends) ve Health Probes
Şimdiye kadar ele aldığımız tüm VCL, Varnish’in davranışını değiştirmemize izin veren rutinler ile ilgiliydi. Ancak, Varnish'in asıl amacı arka uç yanıtlarını önbelleğe almak olduğunu unutmayın. Bu yüzden arka uçların VCL yönünü ele almamızın zamanı geldi. Genel olarak aşağıdaki gibi gözükür.
Varnish, önce tanımlanmış olan arka uca otomatik olarak bağlanır. Diğer arka uçlar sadece req.backend_hint değişkenine değer atayarak kullanılabilir.
Desteklenen arka uç nitelik listesi:
Nitelik
Görevi
hostname
Arka ucun alan adını veya IP'sini temsil eden zorunlu bir nitelik.
port
Kullanılacak olan arka uç bağlantı noktası. Varsayılan bağlantı noktası 80'dir.
connect_timeout
Varnish, arka uç ile bağlantı için beklediği süredir. Varsayılan değer 3,5 saniyedir.
first_byte_timeout
Varnish'in ilk bağlantıdan sonra arka uçtan geri döndürülecek ilk bayt için beklediği süre. Varsayılan değer 60 saniyedir.
between_bytes_timeout
Varnish'in eşit miktarda veri akışı sağlamak için her bayt arasında beklediği süre miktarı. Varsayılan değer 60 saniyedir.
max_connections
Arka uçla eşzamanlı bağlantıların toplam sayısı. Sınıra ulaşıldığında, yeni bağlantılar kesilir. Arka ucunuzun bu miktarda bağlantıyı kaldırabileceğinden emin olun.
prob
Arka ucun sağlığını kontrol etmek için kullanılır.
Yukarıdaki örnekte, 8080 numaralı bağlantı noktasında yerel makineyle bağlantı kurulur. İlk bağlantı için en fazla iki saniye bekleyecek. Bağlantı kurulduktan sonra, ilk baytı almak için beş saniye kadar bekleyecek. Bundan sonra düzenli bir frekans ile bayt almak istiyoruz. Her bayt arasında en fazla bir saniye bekleyecek. Arka uçla aynı anda 150 bağlantıya izin verecek.
Arka uçtan daha fazla istek max_connections ayarında izin verilenden daha fazla olursa, başarısız olurlar.
Kriterlerden herhangi biri karşılanmazsa, arka uç hatası atılır ve HTTP 503 durum koduyla vcl_backend_error'a iletilir.
Bir arka uç probu kullanılmadan, sağlıksız bir arka uç ancak bağlantı koptuğunda tespit edilebilir. Sözde bir arka uç probu, arka uçları düzenli olarak sorgulayacak ve belirli koşullara dayanarak sağlığını kontrol edecektir. problar arka uçlara benzer şekilde tanımlanabilir.
Nitelik
Görevi
url
prob tarafından istek yapılacak url. Bu varsayılan olarak / olarak ayarlanmıştır.
request
Arka uçlara gönderilecek HTTP isteği.
expected_response
Arka uç tarafından döndürülmesi beklenen HTTP durum kodu. Bu, varsayılan değer 200'dür.
timeout
probun bir arka uç yanıtı için beklediği süre. Varsayılan değer 2 saniyedir.
interval
probun ne sıklıkla çalıştırılacağı. Varsayılan değer 5 saniyedir.
window
Arka uç sağlığını belirlemek için yapılan yoklama sayısı. Varsayılan değer 8'dir.
threshold
window'da arka ucun sağlıklı olması için başarılı olunması gereken yoklama sayısı. Bu, varsayılan değer 3'tür.
initial
Varnish bir arka uç sağlığı kontrol edilmeye başlamadan ilk kontrol de gerekli başarı sayısı. Varsayılan eşik değeri - 1.
Örnek bir kod aşağıda:
Yukarıdaki örnekte: arka uç 8080 numaralı bağlantı noktasındaki yerel ana bilgisayara bağlanmaya çalışır. Arka uç sağlığını belirleyen bir arka uç probu vardır. prob, kök URL'deki 8080 numaralı bağlantı noktasında arka uça yoklama yapar. Bir yoklamanın başarılı olması için 200 durum kodlu bir HTTP yanıtı bekleniyor ve bu yanıt bir saniye içinde verilmeli.
Her saniye, prob arka ucu yoklayacak ve beş yoklama sonucu sağlığı belirlemek için kullanılıyor. Bu beş yoklamadan en az üçünün, arka uç sağlıklı olduğunu düşünmesi için başarılı olması gerekir. Başlangıçta, bu iki yoklama olmalıdır.
Ayrıca bir probu açıkça tanımlayabilir, adlandırabilir ve bu probu çoklu arka uçlar için yeniden kullanabiliriz. İşte bunu yapan bir kod örneği:
Last updated
Was this helpful?