Varnish Nasıl Çalışır?

Varnish, web sunucularına veya ayrı sunucular yüklenir. Varnish, kurulduktan ve başlatıldıktan sonra, arkasında bulunan web sunucusunun davranışını taklit eder. Genellikle, Varnish TCP'yi (80) dinler; bu, HTTP'yi sağlayan TCP portudur. Tabii ki Varnish başka bir proxy'nin (Haproxy, Nginx, vs.) ardında olabilir.

Varnish, kayıtlı bir veya daha fazla arka uca (backend) sahip olacak ve bir sonuç önbellekten alınamadığı takdirde bu arka uçlardan biriyle iletişim kuracaktır. Varnish, sanal bellek yığınını önceden tahsis eder ve bunu nesnelerini saklamak için kullanır. Nesneler, HTTP yanıt başlıklarını ve arka uçtan aldığı cevabı içerir. Bellekte saklanan nesneler, karşılık gelen HTTP kaynağını isteyen müşterilere sunulacaktır. Önbellekteki nesneler, varsayılan olarak web sitesi adından (veya herhangi bir site belirtilmemişse IP adresinden) ve isteğin URL'sinden oluşan bir karma tarafından tanımlanır.

Varnish muazzam derecede hızlıdır ve büyük miktarda gelen talepleri karşılamak için pthreads'e güvenir. Iş parçacığı modeli ve depolama için bellek kullanımı, uygulamanıza önemli bir performans artışı katacaktır. Doğru yapılandırılmışsa, Varnish Cache web sitenizi 1.000 kat daha hızlı bir şekilde sunabilir.

Varnish, önbellek davranışını kontrol etmek için Varnish Konfigürasyon Dili (VCL) kullanır. Varnish, bu dil sayesinde çok esnek bir şekilde kullanılabilir. VCL’i kullanarak Varnish’i kendinize göre özelleştirebilirsiniz. Bu konfigürasyon dosyası C koduna çevrilir ve derlenerek binary dosyasına dönüşür. Bu sayede Varnish çok daha hızlı çalışır. Ayrıca VCL dosyası içinde C kodu direk olarak da kullanılabilir. VCL’in yetmediği durumlarda Varnish için modül yazılabilir. C ile kendi Varnish modülünüzü yazabilirsiniz. Bu modüller, C'de programlayabileceğiniz her şeyi içerebilir.

Last updated