Makale Başlıkları
Kisaca
Varnish Cache, web sunucunuzun onunde calisan ve sik istenen sayfalari RAM’de tutarak milisaniyeler icinde sunan bir HTTP hizlandiricisidir. Dogru yapilandirildiginda yanit suresini buyuk olcude dusurur ve origin sunucunun yukunu birkac kat azaltir. Asagida ne oldugunu, nasil calistigini ve adim adim kurulumunu bulacaksiniz.
- Varnish 80 portuna gecer, web sunucusu (Nginx/Apache) arka plana (8080) cekilir ve onbellek RAM’de tutulur.
- HTTPS sonlandirmasi yapmaz; SSL icin onune Hitch veya Nginx gibi bir TLS terminatoru koymak gerekir.
- Yapilandirma VCL diliyle yapilir; WordPress, WooCommerce ve magaza yazilimlarinda cerez/oturum kurallari sarttir.
Varnish Cache, web sunucunuzun onune konan guclu bir HTTP hizlandirici ve ters proxy onbellektir. Sik istenen sayfalari RAM’de tutarak, ayni icerigi tekrar tekrar uretmek yerine aninda sunar. Bu, hem yanit surelerini ciddi bicimde dusurur hem de arka plandaki (origin) sunucunun yukunu azaltir. Ozellikle yuksek trafikli icerik siteleri icin Varnish, performansta buyuk fark yaratir. Bu rehberde Varnish’in ne oldugunu, mantigini ve sifirdan nasil kurulup yapilandirilacagini anlatiyoruz.
Varnish’i calistirmak ve onbellek icin yeterli RAM ayirmak adina ayrilmis kaynakli bir VPS/sunucu idealdir. Paylasimli ortamlarda root erisimi ve port kontrolu sinirli oldugundan, Varnish genelde VPS veya bulut sunucu uzerinde calistirilir.
Varnish Cache Tam Olarak Nedir?
Varnish, 2006’da yuksek trafikli haber sitelerinin yukunu kaldirmak icin gelistirilmis, acik kaynakli bir ters proxy onbellek (reverse proxy cache) yazilimidir. “Ters proxy” olmasinin anlami sudur: kullaniciyla origin sunucusu arasinda durur, gelen istekleri karsilar ve cevaplari kendi belleginde saklar. Ayni icerik bir daha istendiginde, web sunucusunu ve PHP/veritabani katmanini hic rahatsiz etmeden cevabi dogrudan RAM’den dondurur.
Varnish’i diger onbelleklerden ayiran sey, neredeyse her seyi VCL (Varnish Configuration Language) adli kendi programlama diliyle kontrol edebilmenizdir. VCL ile hangi sayfanin ne kadar sure onbellekte kalacagini, hangi cerezlerin onbellegi devre disi birakacagini, mobil ve masaustu icin farkli surumler sunulup sunulmayacagini parmaginiza kadar ayarlayabilirsiniz. Varnish, yazdiginiz VCL’i ucus aninda C koduna cevirip derler; bu yuzden esneklik performanstan neredeyse hic odun vermez.
Varnish Nasil Calisir?
Mantik basittir: Varnish one (80 portu) yerlesir ve kullaniciyi karsilar; web sunucusu (Nginx/Apache) farkli bir porta (ornegin 8080) cekilir ve Varnish’in “backend”i olur. Istek geldiginde Varnish once onbellegine bakar; icerik orada varsa aninda dondurur, yoksa backend’den alir, onbellege kaydeder ve kullaniciya gonderir. Sonraki istekler artik cok daha hizlidir.
Onbellekte bulunan ve dogrudan dondurulen bir istege cache hit, onbellekte olmayip backend’e gidilmesi gereken istege ise cache miss denir. Bir sitenin Varnish’ten gercek fayda gormesi icin hit oraninin mumkun oldugunca yuksek olmasi gerekir. Hit orani genelde su unsurlara baglidir:
- Icerigin durulugu: Sik degisen, kisiye ozel icerikler (sepet, hesap paneli) onbelleklenemez; statik makaleler ve liste sayfalari kolayca onbelleklenir.
- Cerez yonetimi: Her istekte degisen analiz cerezleri dogru filtrelenmezse Varnish her ziyaretciyi farkli kabul eder ve onbellegi neredeyse hic kullanamaz.
- TTL (Time To Live): Bir nesnenin onbellekte ne kadar kalacagini belirler; cok kisa TTL hit oranini dusurur, cok uzun TTL eski icerik servis edilmesine yol acar.
Varnish’i Ne Zaman Kullanmali, Ne Zaman Kullanmamali?
Varnish her senaryonun cozumu degildir. Karar verirken su tabloya bakabilirsiniz:
| Senaryo | Varnish Uygun mu? | Aciklama |
|---|---|---|
| Yuksek trafikli haber/blog/icerik sitesi | Cok uygun | Sayfalarin cogu herkese ayni; hit orani cok yuksek olur. |
| Kurumsal tanitim sitesi | Uygun | Nadiren degisen statik sayfalar onbellekten ucar. |
| WordPress (oturum acmayan ziyaretci) | Uygun (VCL ile) | wp-admin ve giris cerezleri haric tutulmali. |
| E-ticaret (WooCommerce/Magento) | Kismen | Urun/kategori sayfalari onbelleklenir; sepet/odeme onbellek disi birakilir. |
| Tamamen kisiye ozel uygulama (panel, dashboard) | Uygun degil | Her cevap kullaniciya ozel; onbellekten fayda gelmez. |
Onemli bir not: WordPress hosting ortamlarinin cogunda zaten LiteSpeed + LSCache gibi web sunucusuna gomulu bir onbellek bulunur. Bu durumda ayri bir Varnish katmanina genellikle gerek kalmaz; LSCache cerez ve oturum mantigini otomatik halleder. Varnish’in asil parladigi yer, ozel mimarili, kendi sunucusunu yoneten yuksek trafikli projelerdir.
Varnish Kurulumu
Kurulum, dagitiminiza gore tek komutla yapilir. 2026 itibariyla guncel kararli surum Varnish Cache 7.x serisidir (7.7 dahil); depo surumleri biraz daha eski olabilir, en yeni surum icin resmi packagecloud deposunu ekleyebilirsiniz.
# Ubuntu/Debian sudo apt update sudo apt install varnish # AlmaLinux/RHEL/Rocky sudo dnf install varnish # Baslat ve etkinlestir sudo systemctl enable --now varnish # Surumu dogrula varnishd -V
Varnish varsayilan olarak 6081 portunu dinler ve yonetim icin 6082 portunu kullanir. Kurulumdan hemen sonra servisin ayakta oldugunu systemctl status varnish ile dogrulayabilirsiniz. Tum yapilandirma VCL ile yapilir.
Backend Tanimi (default.vcl)
/etc/varnish/default.vcl dosyasinda arka plan sunucusunu tanimlarsiniz. vcl 4.1; satiri kullandiginiz VCL surumunu belirtir ve guncel Varnish 7.x serisinde onerilen surumdur:
vcl 4.1;
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Birden fazla arka plan sunucunuz varsa, ek backend bloklari tanimlayip yuk dengeleme (load balancing) icin directors modulunu kullanabilirsiniz. Boylece Varnish, hem onbellek hem de basit bir yuk dengeleyici gorevi gorur.
Varnish’i 80 Portuna Almak
Uretimde Varnish’in kullanicilari dogrudan karsilamasi icin 80 portunu dinlemesi gerekir. systemd ayarini override ile duzenleyin:
sudo systemctl edit varnish
[Service] ExecStart= ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
sudo systemctl daemon-reload sudo systemctl restart varnish
Ardindan web sunucunuzu 8080’de dinletin ve default.vcl icinde .port = "8080" yapin. Burada -s malloc,256m ifadesi, onbellek icin 256 MB RAM ayrilacagini soyler; bu degeri sunucunuzun bos RAM’ine gore artirmalisiniz.
RAM mi, Disk mi? Onbellek Boyutu Secimi
Varnish’in en buyuk avantaji onbellegi RAM’de (malloc) tutmasidir; bu, klasik disk tabanli onbelleklerden kat kat hizlidir. Kabaca su tablo yol gosterir:
| Sunucu RAM | Onerilen Varnish onbellegi | Not |
|---|---|---|
| 2 GB | 512 MB | Kucuk blog/kurumsal site. |
| 4 GB | 1-2 GB | Orta olcekli icerik sitesi. |
| 8 GB ve uzeri | 4 GB+ | Yuksek trafikli, cok sayfali projeler. |
Onbellege isletim sistemi ve web sunucusu icin yeterli RAM birakmadan tum bellegi vermeyin; aksi halde sistem takasa (swap) duser ve performans coker.
WordPress ve E-ticaret icin VCL Notlari
WordPress ile Varnish’i barisik calistirmanin sirri cerez yonetimidir. Asagidaki gibi giris yapmis kullanicilarin ve yonetim panelinin onbellek disi birakilmasi gerekir:
sub vcl_recv {
# Yonetim ve giris sayfalarini onbellege alma
if (req.url ~ "^/wp-(admin|login)") {
return (pass);
}
# Oturum acmis kullanicilarda onbellegi atla
if (req.http.Cookie ~ "wordpress_logged_in") {
return (pass);
}
}
E-ticarette ise sepet, odeme ve hesap sayfalari mutlaka return (pass); ile onbellek disi tutulur; yalnizca herkese ayni gosterilen urun ve kategori listeleri onbelleklenir. Yanlis yapilandirma, bir kullanicinin sepetinin baska bir kullaniciya gosterilmesi gibi ciddi sorunlara yol acabilecegi icin bu kismi dikkatle test edin.
Varnish, Nginx Cache ve Redis Farki
Bu uc cozum sik karistirilir ama ayni isi yapmazlar. Ozet bir karsilastirma:
| Cozum | Ne onbellekler? | Nerede tutar? | Tipik kullanim |
|---|---|---|---|
| Varnish | Tam HTTP sayfa (full-page) | RAM | Bagimsiz onbellek katmani, en esnek; VCL ile derin kontrol. |
| Nginx FastCGI Cache | Tam HTTP sayfa | Disk (+ OS page cache) | Zaten Nginx kullaniyorsaniz en sade secenek. |
| Redis / Memcached | Veritabani sorgusu, nesne (object cache) | RAM | Sayfa degil, uygulama ici veriyi hizlandirir. |
| LiteSpeed + LSCache | Tam HTTP sayfa | RAM/Disk | Web sunucusuna gomulu; WordPress’te kurulumsuz calisir. |
Onemli ayrim: Redis ve Varnish rakip degil tamamlayicidir. Redis, PHP’nin veritabani sorgularini hizlandirir (object cache); Varnish ise uretilen sayfayi tamamen RAM’den servis eder (page cache). Ileri duzey bir kurulumda ikisi birlikte kullanilabilir. Alastyr WordPress hosting ve paylasimli hosting paketlerinde ise LiteSpeed + LSCache hazir geldigi icin ayri bir Varnish kurulumuna cogu zaman gerek kalmaz.
Dikkat Edilmesi Gerekenler
- Varnish HTTPS/TLS sonlandirmasi yapmaz; SSL icin onune bir TLS terminatoru (Nginx veya Hitch) koymaniz gerekir. Bugun trafigin neredeyse tamami HTTPS oldugundan bu adim opsiyonel degildir. SSL sertifikasi kurulumunu ihmal etmeyin.
- Web sunucusunu mutlaka backend portuna (8080) tasiyin; aksi halde 80 portu icin cakisma olur.
- VCL degisikliginden sonra
systemctl reload varnishgerekir;varnishadm vcl.loadile sicak yukleme de yapilabilir. - Onbellek boyutunu (
-s malloc,256m) sunucu RAM’ine gore ayarlayin; RAM doldugunda Varnish en az kullanilan nesneleri (LRU) atar. - Canli izleme icin
varnishstat(hit/miss orani), sorun cozumu icinvarnishlogkomutlarini kullanin. - Icerik guncellendiginde eski surum onbellekte kalmasin diye purge/ban kurallari tanimlayin (CMS eklentileri bunu otomatik yapabilir).
Sikca Sorulan Sorular
Varnish ucretsiz mi?
Evet, Varnish Cache acik kaynaklidir ve ucretsiz kullanilir. Ek ozellikler, ticari destek ve yerlesik TLS gibi yeteneklerle gelen Varnish Enterprise adli ucretli bir surum de vardir; ancak cogu site icin acik kaynak surumu fazlasiyla yeterlidir.
Varnish HTTPS destekler mi?
Dogrudan desteklemez. Varnish yalnizca HTTP ile calisir; SSL/TLS sonlandirmasi icin onune Nginx ya da Hitch gibi bir TLS terminatoru koymaniz gerekir. Bu terminator sifreli trafigi cozer, Varnish’e duz HTTP olarak gecirir.
Hangi siteler icin uygun?
En cok faydayi yuksek trafikli, herkese ayni icerigi gosteren haber, blog ve icerik siteleri gorur. Kurumsal tanitim siteleri ve dogru yapilandirilmis WordPress sitelerinde de etkilidir. Tamamen kisiye ozel panellerde ise onbellekten kazanc cok sinirlidir.
Varnish WordPress ile calisir mi?
Evet, calisir; ancak oturum ve cerez kurallari icin VCL yapilandirmasi sarttir. wp-admin, giris sayfasi ve oturum acmis kullanicilar onbellek disi birakilmalidir. Birçok WordPress eklentisi bu kurallari ve onbellek temizleme islemini otomatiklestirir.
Varnish ile LiteSpeed/LSCache arasindaki fark nedir?
LSCache, LiteSpeed web sunucusuna gomulu bir onbellektir ve ayri bir servis gerektirmeden, cerez/oturum mantigini otomatik yoneterek calisir. Varnish ise bagimsiz, ayri kurulan ve VCL ile derinlemesine ozellestirilen bir onbellek katmanidir. Sunucunuzda LiteSpeed varsa genelde LSCache yeterlidir.
Varnish RAM mi yoksa disk mi kullanir?
Varnish onbellegi varsayilan olarak RAM’de (malloc) tutar; bu, onu disk tabanli onbelleklerden cok daha hizli yapar. Cok buyuk onbellekler icin disk tabanli secenekler de vardir, ancak performansin temeli RAM’de tutulan sicak iceriktir.
Onbellek hit oranimi nasil olcerim?
Canli olarak varnishstat komutunu calistirarak cache hit ve miss sayilarini gorebilirsiniz. Hit oraninin dusuk olmasi genelde cerezlerin yanlis filtrelenmesinden ya da cok kisa TTL degerlerinden kaynaklanir. Detayli istekleri varnishlog ile inceleyebilirsiniz.
Varnish’i guncellemek icin ne yapmaliyim?
Dagitiminizin paket yoneticisiyle (apt veya dnf) guncelleyebilirsiniz. En yeni surumu istiyorsaniz resmi packagecloud deposunu ekleyin. Buyuk surum gecislerinde VCL surum satirinizi (ornegin vcl 4.1;) ve modul uyumlulugunu kontrol etmeyi unutmayin.
Varnish icin ne kadar RAM gerekir?
Sitenizin onbelleklenebilir icerik boyutuna baglidir. Kucuk siteler 512 MB ile rahat eder; orta olcekli projeler 1-2 GB, yuksek trafikli siteler 4 GB ve uzeri ister. Isletim sistemi ve web sunucusu icin de yeterli RAM birakmayi unutmayin.
Onbellek Icin Bol RAM’li Sunucu
Varnish onbelleginiz icin yuksek RAM’li, ayrilmis kaynakli ve root erisimli VPS/sunucu cozumleri. Izmir’deki kendi veri merkezimizde, 40 Gbit yedekli ag ve 7/24 destek ile.





