{"id":15646,"date":"2026-05-04T17:37:43","date_gmt":"2026-05-04T14:37:43","guid":{"rendered":"https:\/\/www.ihs.com.tr\/blog\/?p=15646"},"modified":"2026-05-04T17:37:43","modified_gmt":"2026-05-04T14:37:43","slug":"sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu","status":"publish","type":"post","link":"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/","title":{"rendered":"Sunucularda \u00d6nbellekleme (Caching) Mekanizmalar\u0131: Varnish Cache Kurulumu"},"content":{"rendered":"<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, web sitelerinin h\u0131z\u0131 ve performans\u0131, kullan\u0131c\u0131 memnuniyeti ve arama motoru s\u0131ralamalar\u0131 i\u00e7in kritik bir fakt\u00f6rd\u00fcr. Yava\u015f a\u00e7\u0131lan bir sayfa, ziyaret\u00e7ilerin siteyi terk etmesine ve potansiyel m\u00fc\u015fterilerin kaybedilmesine neden olabilir. Sunucu tarafl\u0131 \u00f6nbellekleme (server-side caching), bu sorunu \u00e7\u00f6zmek i\u00e7in kullan\u0131lan en etkili y\u00f6ntemlerden biridir. Bu mekanizma, web sunucusunun y\u00fck\u00fcn\u00fc hafifleterek ve i\u00e7eri\u011fi kullan\u0131c\u0131lara \u00e7ok daha h\u0131zl\u0131 bir \u015fekilde ula\u015ft\u0131rarak site performans\u0131n\u0131 dramatik bir \u015fekilde art\u0131r\u0131r. Bu kapsaml\u0131 rehberde, sunucu tarafl\u0131 \u00f6nbelleklemenin temellerini, \u00f6zellikle de bu alandaki en g\u00fc\u00e7l\u00fc ara\u00e7lardan biri olan Varnish Cache&#8217;in kurulumunu, yap\u0131land\u0131rmas\u0131n\u0131 ve optimizasyonunu derinlemesine inceleyece\u011fiz.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_77 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0130\u00e7erik Tablosu<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69f8dbe8cf526\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\" id=\"ez-toc-cssicon-toggle-item-69f8dbe8cf526\" aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Sunucu-Tarafli-Onbellekleme-Server-Side-Caching-Temelleri\" >Sunucu Tarafl\u0131 \u00d6nbellekleme (Server-Side Caching) Temelleri<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Onbellekleme-Caching-Nedir-ve-Neden-Onemlidir\" >\u00d6nbellekleme (Caching) Nedir ve Neden \u00d6nemlidir?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Web-Sitesi-Performansi-ve-Kullanici-Deneyimi-Uzerindeki-Etkileri\" >Web Sitesi Performans\u0131 ve Kullan\u0131c\u0131 Deneyimi \u00dczerindeki Etkileri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Farkli-Onbellekleme-Turleri\" >Farkl\u0131 \u00d6nbellekleme T\u00fcrleri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Ters-Proxy-Onbelleklemenin-Avantajlari\" >Ters Proxy \u00d6nbelleklemenin Avantajlar\u0131<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cache-Derinlemesine-Bir-Bakis\" >Varnish Cache: Derinlemesine Bir Bak\u0131\u015f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cache-Nedir\" >Varnish Cache Nedir?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cache-Mimarisi-ve-Calisma-Prensibi\" >Varnish Cache Mimarisi ve \u00c7al\u0131\u015fma Prensibi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Configuration-Language-VCL-Nedir-ve-Rolu-Nedir\" >Varnish Configuration Language (VCL) Nedir ve Rol\u00fc Nedir?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cachein-Diger-Onbellekleme-Cozumlerinden-Farklari\" >Varnish Cache&#8217;in Di\u011fer \u00d6nbellekleme \u00c7\u00f6z\u00fcmlerinden Farklar\u0131<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cache-Kurulumu-Adim-Adim-Rehber\" >Varnish Cache Kurulumu: Ad\u0131m Ad\u0131m Rehber<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Kurulum-Oncesi-Hazirlik-ve-Sistem-Gereksinimleri\" >Kurulum \u00d6ncesi Haz\u0131rl\u0131k ve Sistem Gereksinimleri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cache-Depolarinin-Sisteme-Eklenmesi\" >Varnish Cache Depolar\u0131n\u0131n Sisteme Eklenmesi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cache-Paketinin-Yuklenmesi-DebianUbuntu-ve-CentOSRHEL-Ornekleri\" >Varnish Cache Paketinin Y\u00fcklenmesi (Debian\/Ubuntu ve CentOS\/RHEL \u00d6rnekleri)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Servisinin-Baslatilmasi-ve-Durum-Kontrolu\" >Varnish Servisinin Ba\u015flat\u0131lmas\u0131 ve Durum Kontrol\u00fc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Temel-Varnish-Cache-Yapilandirmasi\" >Temel Varnish Cache Yap\u0131land\u0131rmas\u0131<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Servis-Parametrelerinin-Yapilandirilmasi-etcdefaultvarnish-veya-systemd\" >Varnish Servis Parametrelerinin Yap\u0131land\u0131r\u0131lmas\u0131 (\/etc\/default\/varnish veya systemd)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Backend-Web-Sunucusunun-ApacheNginx-Port-Ayarlarinin-Degistirilmesi\" >Backend Web Sunucusunun (Apache\/Nginx) Port Ayarlar\u0131n\u0131n De\u011fi\u015ftirilmesi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnishin-Backend-Sunucusunu-Dinlemesi-Icin-VCL-Dosyasinin-Duzenlenmesi\" >Varnish&#8217;in Backend Sunucusunu Dinlemesi \u0130\u00e7in VCL Dosyas\u0131n\u0131n D\u00fczenlenmesi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Yapilandirmanin-Dogrulanmasi-ve-Test-Edilmesi\" >Yap\u0131land\u0131rman\u0131n Do\u011frulanmas\u0131 ve Test Edilmesi<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Configuration-Language-VCL-ile-IstekCevap-Akisini-Yonetme\" >Varnish Configuration Language (VCL) ile \u0130stek\/Cevap Ak\u0131\u015f\u0131n\u0131 Y\u00f6netme<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#VCL-Dosyasinin-Temel-Yapisi-ve-Ana-Subroutineler\" >VCL Dosyas\u0131n\u0131n Temel Yap\u0131s\u0131 ve Ana Subroutine&#8217;ler<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#vcl-recv-Gelen-Istemci-Isteklerini-Karsilama-ve-Yonlendirme\" >`vcl_recv`: Gelen \u0130stemci \u0130steklerini Kar\u015f\u0131lama ve Y\u00f6nlendirme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#vcl-backend-response-Backend-Sunucusundan-Gelen-Cevaplari-Yonetme\" >`vcl_backend_response`: Backend Sunucusundan Gelen Cevaplar\u0131 Y\u00f6netme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#vcl-deliver-Istemciye-Gonderilecek-Son-Cevabi-Hazirlama\" >`vcl_deliver`: \u0130stemciye G\u00f6nderilecek Son Cevab\u0131 Haz\u0131rlama<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#vcl-hit-ve-vcl-miss-Onbellek-Durumuna-Gore-Islem-Yapma\" >`vcl_hit` ve `vcl_miss`: \u00d6nbellek Durumuna G\u00f6re \u0130\u015flem Yapma<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Gelismis-Varnish-Cache-Yapilandirmalari-ve-Optimizasyon-Teknikleri\" >Geli\u015fmi\u015f Varnish Cache Yap\u0131land\u0131rmalar\u0131 ve Optimizasyon Teknikleri<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Cookie-Cerez-ve-Oturum-Bilgilerini-Yonetme\" >Cookie (\u00c7erez) ve Oturum Bilgilerini Y\u00f6netme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Belirli-URLleri-ve-Dizinleri-Onbellekten-Haric-Tutma-Cache-Bypass\" >Belirli URL&#8217;leri ve Dizinleri \u00d6nbellekten Hari\u00e7 Tutma (Cache Bypass)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Onbellek-Temizleme-ve-Gecersiz-Kilma-Purging-Invalidation\" >\u00d6nbellek Temizleme ve Ge\u00e7ersiz K\u0131lma (Purging &#038; Invalidation)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#HTTP-Basliklarini-Headers-Yoneterek-Onbellek-Davranisini-Kontrol-Etme\" >HTTP Ba\u015fl\u0131klar\u0131n\u0131 (Headers) Y\u00f6neterek \u00d6nbellek Davran\u0131\u015f\u0131n\u0131 Kontrol Etme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Grace-Mode-ve-Saint-Mode-ile-Kesintisiz-Hizmet\" >Grace Mode ve Saint Mode ile Kesintisiz Hizmet<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#ESI-Edge-Side-Includes-Kullanarak-Parcali-Onbellekleme\" >ESI (Edge Side Includes) Kullanarak Par\u00e7al\u0131 \u00d6nbellekleme<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cache-Izleme-Monitoring-ve-Sorun-Giderme\" >Varnish Cache \u0130zleme (Monitoring) ve Sorun Giderme<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#varnishstat-ile-Gercek-Zamanli-Istatistikleri-Izleme\" >`varnishstat` ile Ger\u00e7ek Zamanl\u0131 \u0130statistikleri \u0130zleme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#varnishlog-ile-IstekCevap-Dongusunu-Detayli-Analiz-Etme\" >`varnishlog` ile \u0130stek\/Cevap D\u00f6ng\u00fcs\u00fcn\u00fc Detayl\u0131 Analiz Etme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#varnishtop-ile-Populer-Istekleri-Goruntuleme\" >`varnishtop` ile Pop\u00fcler \u0130stekleri G\u00f6r\u00fcnt\u00fcleme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Sik-Karsilasilan-Yapilandirma-Hatalari-ve-Cozumleri\" >S\u0131k Kar\u015f\u0131la\u015f\u0131lan Yap\u0131land\u0131rma Hatalar\u0131 ve \u00c7\u00f6z\u00fcmleri<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cache-Cozumleri-Icin-Neden-IHS-Telekomu-Tercih-Etmelisiniz\" >Varnish Cache \u00c7\u00f6z\u00fcmleri \u0130\u00e7in Neden \u0130HS Telekom&#8217;u Tercih Etmelisiniz?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Uzman-Teknik-Destek-ve-Yapilandirma-Danismanligi\" >Uzman Teknik Destek ve Yap\u0131land\u0131rma Dan\u0131\u015fmanl\u0131\u011f\u0131<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Varnish-Cache-icin-Optimize-Edilmis-Yuksek-Performansli-Sunucu-Altyapisi\" >Varnish Cache i\u00e7in Optimize Edilmi\u015f Y\u00fcksek Performansl\u0131 Sunucu Altyap\u0131s\u0131<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Guvenlik-ve-Sureklilik-Odakli-Yonetilen-Hizmetler\" >G\u00fcvenlik ve S\u00fcreklilik Odakl\u0131 Y\u00f6netilen Hizmetler<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/www.ihs.com.tr\/blog\/sunucularda-onbellekleme-caching-mekanizmalari-varnish-cache-kurulumu\/#Olceklenebilir-ve-Ihtiyaclariniza-Ozel-Cozumler\" >\u00d6l\u00e7eklenebilir ve \u0130htiya\u00e7lar\u0131n\u0131za \u00d6zel \u00c7\u00f6z\u00fcmler<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Sunucu-Tarafli-Onbellekleme-Server-Side-Caching-Temelleri\"><\/span>Sunucu Tarafl\u0131 \u00d6nbellekleme (Server-Side Caching) Temelleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sunucu tarafl\u0131 \u00f6nbellekleme, web sitesi performans\u0131n\u0131 optimize etmenin temel ta\u015flar\u0131ndan biridir. Bu b\u00f6l\u00fcmde, \u00f6nbelleklemenin ne oldu\u011funu, neden bu kadar \u00f6nemli oldu\u011funu ve web sitesi performans\u0131 \u00fczerindeki \u00e7ok y\u00f6nl\u00fc etkilerini ele alaca\u011f\u0131z. Ayr\u0131ca, farkl\u0131 \u00f6nbellekleme t\u00fcrlerini ve bu t\u00fcrler aras\u0131nda \u00f6ne \u00e7\u0131kan ters proxy \u00f6nbelleklemenin avantajlar\u0131n\u0131 inceleyece\u011fiz.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Onbellekleme-Caching-Nedir-ve-Neden-Onemlidir\"><\/span>\u00d6nbellekleme (Caching) Nedir ve Neden \u00d6nemlidir?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u00d6nbellekleme (caching), en basit tan\u0131m\u0131yla, s\u0131k\u00e7a talep edilen verilerin veya dosyalar\u0131n daha h\u0131zl\u0131 eri\u015filebilen bir ge\u00e7ici depolama alan\u0131nda saklanmas\u0131 i\u015flemidir. Bir kullan\u0131c\u0131 web sitenizi ziyaret etti\u011finde, taray\u0131c\u0131s\u0131 sunucunuzdan sayfan\u0131n i\u00e7eri\u011fini (HTML, CSS, JavaScript dosyalar\u0131, g\u00f6rseller vb.) talep eder. Normal \u015fartlarda <a href=\"https:\/\/www.ihs.com.tr\/sunucu-kiralama\/\" target=\"_blank\">sunucu<\/a>, her bir istek i\u00e7in bu dosyalar\u0131 yeniden i\u015fler, veritaban\u0131ndan veri \u00e7eker ve kullan\u0131c\u0131ya g\u00f6nderir. Bu s\u00fcre\u00e7, \u00f6zellikle y\u00fcksek trafikli sitelerde sunucu kaynaklar\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde t\u00fcketir ve sayfa y\u00fckleme s\u00fcrelerini art\u0131r\u0131r. \u00d6nbellekleme, bu s\u00fcreci bypass ederek, \u00f6nceden olu\u015fturulmu\u015f ve kaydedilmi\u015f bir sayfa kopyas\u0131n\u0131 do\u011frudan sunar. Bu sayede sunucu \u00fczerindeki y\u00fck azal\u0131r, yan\u0131t s\u00fcreleri k\u0131sal\u0131r ve web sitesi \u00e7ok daha h\u0131zl\u0131 \u00e7al\u0131\u015f\u0131r.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Web-Sitesi-Performansi-ve-Kullanici-Deneyimi-Uzerindeki-Etkileri\"><\/span>Web Sitesi Performans\u0131 ve Kullan\u0131c\u0131 Deneyimi \u00dczerindeki Etkileri<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Web sitesi performans\u0131, do\u011frudan kullan\u0131c\u0131 deneyimi (UX) ile ili\u015fkilidir. Ara\u015ft\u0131rmalar, sayfa y\u00fckleme s\u00fcresindeki her saniyelik gecikmenin d\u00f6n\u00fc\u015f\u00fcm oranlar\u0131n\u0131, kullan\u0131c\u0131 memnuniyetini ve sitede kalma s\u00fcresini olumsuz etkiledi\u011fini g\u00f6stermektedir. H\u0131zl\u0131 y\u00fcklenen bir site, profesyonel ve g\u00fcvenilir bir imaj \u00e7izerken, yava\u015f bir site ziyaret\u00e7ilerde hayal k\u0131r\u0131kl\u0131\u011f\u0131 yarat\u0131r. \u00d6nbellekleme, TTFB (Time to First Byte) s\u00fcresini, yani taray\u0131c\u0131n\u0131n sunucudan ilk veri bayt\u0131n\u0131 alma s\u00fcresini \u00f6nemli \u00f6l\u00e7\u00fcde d\u00fc\u015f\u00fcr\u00fcr. Bu, Google&#8217;\u0131n <a href=\"https:\/\/www.ihs.com.tr\/blog\/core-web-vitals-nedir\/\" target=\"_blank\">Core Web Vitals<\/a> gibi performans metriklerinde daha iyi puanlar alman\u0131z\u0131 sa\u011flar, bu da SEO s\u0131ralaman\u0131z\u0131 pozitif y\u00f6nde etkiler.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Farkli-Onbellekleme-Turleri\"><\/span>Farkl\u0131 \u00d6nbellekleme T\u00fcrleri<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u00d6nbellekleme, web mimarisinin farkl\u0131 katmanlar\u0131nda uygulanabilir. Her t\u00fcr\u00fcn kendine \u00f6zg\u00fc bir amac\u0131 ve i\u015fleyi\u015fi vard\u0131r. \u0130\u015fte en yayg\u0131n \u00f6nbellekleme t\u00fcrleri:<\/p>\n<h4>Taray\u0131c\u0131 \u00d6nbellekleme (Browser Caching)<\/h4>\n<p>Taray\u0131c\u0131 \u00f6nbellekleme, kullan\u0131c\u0131n\u0131n web taray\u0131c\u0131s\u0131n\u0131n (Chrome, Firefox vb.) statik dosyalar\u0131 (CSS, JavaScript, resimler gibi) kendi yerel deposunda saklamas\u0131d\u0131r. Kullan\u0131c\u0131 ayn\u0131 siteyi tekrar ziyaret etti\u011finde, bu dosyalar sunucudan yeniden istenmek yerine do\u011frudan kullan\u0131c\u0131n\u0131n bilgisayar\u0131ndan y\u00fcklenir. Bu, tekrar eden ziyaretler i\u00e7in sayfa y\u00fckleme h\u0131z\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/p>\n<h4>\u0130\u00e7erik Da\u011f\u0131t\u0131m A\u011f\u0131 (CDN) \u00d6nbellekleme<\/h4>\n<p>CDN (Content Delivery Network), web sitenizin i\u00e7eri\u011finin kopyalar\u0131n\u0131 d\u00fcnya genelinde co\u011frafi olarak da\u011f\u0131t\u0131lm\u0131\u015f birden \u00e7ok sunucuda depolayan bir hizmettir. Bir kullan\u0131c\u0131 sitenize eri\u015fti\u011finde, i\u00e7erik ona en yak\u0131n co\u011frafi konumdaki CDN sunucusundan teslim edilir. Bu, \u00f6zellikle global bir kitleye hitap eden siteler i\u00e7in gecikmeyi (latency) azalt\u0131r ve i\u00e7eri\u011fin daha h\u0131zl\u0131 sunulmas\u0131n\u0131 sa\u011flar. <a href=\"https:\/\/www.ihs.com.tr\/blog\/cdn-nedir-site-performansini-nasil-iyilestirir\/\" target=\"_blank\">CDN nedir<\/a> sorusunun cevab\u0131, k\u00fcresel \u00f6l\u00e7ekte h\u0131z ve performans optimizasyonudur.<\/p>\n<h4>Uygulama Seviyesi \u00d6nbellekleme (Application Caching)<\/h4>\n<p>Bu t\u00fcr \u00f6nbellekleme, web uygulamas\u0131n\u0131n kendi i\u00e7inde ger\u00e7ekle\u015fir. \u00d6rne\u011fin, veritaban\u0131ndan s\u0131k\u00e7a \u00e7ekilen ve nadiren de\u011fi\u015fen sorgu sonu\u00e7lar\u0131 veya karma\u015f\u0131k hesaplamalar\u0131n \u00e7\u0131kt\u0131lar\u0131, Redis veya Memcached gibi bellek i\u00e7i (in-memory) veri depolar\u0131nda saklanabilir. B\u00f6ylece uygulama, her seferinde veritaban\u0131na gitmek veya ayn\u0131 hesaplamay\u0131 yapmak yerine, sonucu do\u011frudan \u00f6nbellekten alarak i\u015flem s\u00fcresini k\u0131salt\u0131r.<\/p>\n<h4>Ters Proxy (Reverse Proxy) \u00d6nbellekleme<\/h4>\n<p>Varnish Cache&#8217;in de dahil oldu\u011fu bu y\u00f6ntemde, ters proxy sunucusu, web sunucusunun (backend) \u00f6n\u00fcnde durur ve gelen t\u00fcm kullan\u0131c\u0131 isteklerini ilk kar\u015f\u0131layan olur. E\u011fer istenen i\u00e7erik ters proxy&#8217;nin \u00f6nbelle\u011finde mevcutsa (cache hit), istek web sunucusuna hi\u00e7 ula\u015fmadan do\u011frudan kullan\u0131c\u0131ya sunulur. E\u011fer i\u00e7erik \u00f6nbellekte yoksa (cache miss), istek web sunucusuna iletilir, gelen cevap hem kullan\u0131c\u0131ya g\u00f6nderilir hem de gelecekteki istekler i\u00e7in \u00f6nbelle\u011fe al\u0131n\u0131r. Bu, sunucu y\u00fck\u00fcn\u00fc en aza indiren en etkili y\u00f6ntemlerden biridir.<\/p>\n<div class=\"karsilastirma\">\n<table>\n<thead>\n<tr>\n<th>\u00d6nbellekleme T\u00fcr\u00fc<\/th>\n<th>Nerede \u00c7al\u0131\u015f\u0131r?<\/th>\n<th>Temel Amac\u0131<\/th>\n<th>\u0130deal Kullan\u0131m Alan\u0131<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Taray\u0131c\u0131 \u00d6nbellekleme<\/strong><\/td>\n<td>Kullan\u0131c\u0131n\u0131n Bilgisayar\u0131 (Taray\u0131c\u0131)<\/td>\n<td>Tekrar eden ziyaretlerde sayfa y\u00fckleme h\u0131z\u0131n\u0131 art\u0131rmak.<\/td>\n<td>Statik varl\u0131klar (CSS, JS, resimler).<\/td>\n<\/tr>\n<tr>\n<td><strong>CDN \u00d6nbellekleme<\/strong><\/td>\n<td>Co\u011frafi Olarak Da\u011f\u0131t\u0131lm\u0131\u015f Sunucular<\/td>\n<td>\u0130\u00e7eri\u011fi kullan\u0131c\u0131ya co\u011frafi olarak en yak\u0131n noktadan sunarak gecikmeyi azaltmak.<\/td>\n<td>Global kitleye sahip siteler, b\u00fcy\u00fck medya dosyalar\u0131.<\/td>\n<\/tr>\n<tr>\n<td><strong>Uygulama \u00d6nbellekleme<\/strong><\/td>\n<td>Web Uygulamas\u0131n\u0131n Kendisi (\u00d6rn: Redis)<\/td>\n<td>Veritaban\u0131 sorgular\u0131n\u0131 ve karma\u015f\u0131k i\u015flemleri h\u0131zland\u0131rmak.<\/td>\n<td>Dinamik i\u00e7erik \u00fcreten, veritaban\u0131 yo\u011fun uygulamalar.<\/td>\n<\/tr>\n<tr>\n<td><strong>Ters Proxy \u00d6nbellekleme<\/strong><\/td>\n<td>Web Sunucusunun \u00d6n\u00fcndeki Adanm\u0131\u015f Sunucu<\/td>\n<td>Web sunucusuna gelen istek say\u0131s\u0131n\u0131 azaltarak sunucu y\u00fck\u00fcn\u00fc d\u00fc\u015f\u00fcrmek.<\/td>\n<td>Y\u00fcksek trafikli dinamik ve statik web siteleri.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"Ters-Proxy-Onbelleklemenin-Avantajlari\"><\/span>Ters Proxy \u00d6nbelleklemenin Avantajlar\u0131<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Ters proxy \u00f6nbellekleme, \u00f6zellikle Varnish gibi \u00e7\u00f6z\u00fcmlerle uyguland\u0131\u011f\u0131nda bir\u00e7ok avantaj sunar. Sadece site h\u0131z\u0131n\u0131 art\u0131rmakla kalmaz, ayn\u0131 zamanda sunucu altyap\u0131s\u0131n\u0131n sa\u011fl\u0131\u011f\u0131 ve \u00f6l\u00e7eklenebilirli\u011fi i\u00e7in de faydal\u0131d\u0131r. Temel avantajlar\u0131 aras\u0131nda sunucu y\u00fck\u00fcn\u00fcn azalt\u0131lmas\u0131, daha iyi \u00f6l\u00e7eklenebilirlik, web sunucusunu yava\u015flatan isteklerden koruma ve hatta baz\u0131 durumlarda temel bir g\u00fcvenlik katman\u0131 sa\u011flama say\u0131labilir.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Varnish-Cache-Derinlemesine-Bir-Bakis\"><\/span>Varnish Cache: Derinlemesine Bir Bak\u0131\u015f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Varnish Cache, web performans\u0131n\u0131 bir \u00fcst seviyeye ta\u015f\u0131mak i\u00e7in tasarlanm\u0131\u015f, a\u00e7\u0131k kaynak kodlu bir web uygulama h\u0131zland\u0131r\u0131c\u0131s\u0131d\u0131r. S\u0131kl\u0131kla &#8220;HTTP ters proxy&#8221; veya &#8220;HTTP h\u0131zland\u0131r\u0131c\u0131s\u0131&#8221; olarak an\u0131l\u0131r. Temel g\u00f6revi, web sunucunuzun \u00f6n\u00fcnde bir kalkan gibi durarak, gelen isteklerin b\u00fcy\u00fck bir \u00e7o\u011funu backend sunucunuza hi\u00e7 ula\u015ft\u0131rmadan, kendi belle\u011finden s\u00fcper h\u0131zl\u0131 bir \u015fekilde yan\u0131tlamakt\u0131r. Bu sayede, web siteniz \u00e7ok daha fazla trafi\u011fi, daha az sunucu kayna\u011f\u0131yla kald\u0131rabilir hale gelir.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Varnish-Cache-Nedir\"><\/span>Varnish Cache Nedir?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish Cache, gelen HTTP isteklerini al\u0131p, bu isteklerin cevaplar\u0131n\u0131 bellekte (RAM) saklayan ve ayn\u0131 istek tekrar geldi\u011finde bu cevab\u0131 do\u011frudan bellekten sunan bir yaz\u0131l\u0131md\u0131r. Geleneksel dosya tabanl\u0131 \u00f6nbellekleme sistemlerinin aksine, Varnish \u00f6nbelle\u011fi tamamen bellekte tutar. Bu da disk I\/O (giri\u015f\/\u00e7\u0131k\u0131\u015f) i\u015flemlerini ortadan kald\u0131rarak ola\u011fan\u00fcst\u00fc bir h\u0131z ve performans art\u0131\u015f\u0131 sa\u011flar. \u00d6zellikle <a href=\"https:\/\/www.ihs.com.tr\/blog\/icerik-yonetim-sistemi-cms-nedir\/\" target=\"_blank\">i\u00e7erik y\u00f6netim sistemi<\/a> (CMS) tabanl\u0131 siteler, e-ticaret platformlar\u0131 ve y\u00fcksek trafikli haber portallar\u0131 i\u00e7in ideal bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Varnish-Cache-Mimarisi-ve-Calisma-Prensibi\"><\/span>Varnish Cache Mimarisi ve \u00c7al\u0131\u015fma Prensibi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish, web sunucunuz (genellikle Apache veya Nginx) ile internet aras\u0131nda bir arac\u0131 olarak konumland\u0131r\u0131l\u0131r. Normalde kullan\u0131c\u0131 istekleri do\u011frudan 80 (HTTP) veya 443 (HTTPS) portu \u00fczerinden web sunucunuza gelir. Varnish kuruldu\u011funda ise bu yap\u0131 de\u011fi\u015fir:<\/p>\n<ol>\n<li>Kullan\u0131c\u0131 istekleri art\u0131k Varnish&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 80 portuna gelir.<\/li>\n<li>Web sunucunuz ise 8080 gibi farkl\u0131 bir portta \u00e7al\u0131\u015facak \u015fekilde yeniden yap\u0131land\u0131r\u0131l\u0131r.<\/li>\n<li>Varnish, gelen iste\u011fi al\u0131r. E\u011fer istenen sayfa veya i\u00e7erik kendi \u00f6nbelle\u011finde varsa (<b>cache hit<\/b>), iste\u011fi web sunucusuna hi\u00e7 g\u00f6ndermeden, do\u011frudan bellekten al\u0131p kullan\u0131c\u0131ya an\u0131nda sunar.<\/li>\n<li>E\u011fer i\u00e7erik \u00f6nbellekte yoksa (<b>cache miss<\/b>), Varnish bu iste\u011fi arka planda \u00e7al\u0131\u015fan web sunucunuza (backend) iletir.<\/li>\n<li>Web sunucusu iste\u011fi i\u015fler ve cevab\u0131 Varnish&#8217;e g\u00f6nderir.<\/li>\n<li>Varnish, bu cevab\u0131 hem kullan\u0131c\u0131ya iletir hem de bir sonraki ayn\u0131 istek i\u00e7in kendi \u00f6nbelle\u011fine kaydeder.<\/li>\n<\/ol>\n<p>Bu mimari, web sunucusunun sadece \u00f6nbellekte olmayan &#8220;taze&#8221; i\u00e7erikleri \u00fcretmekle sorumlu olmas\u0131n\u0131 sa\u011flar, bu da sunucu y\u00fck\u00fcn\u00fc %80-90 oran\u0131nda azaltabilir.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Varnish-Configuration-Language-VCL-Nedir-ve-Rolu-Nedir\"><\/span>Varnish Configuration Language (VCL) Nedir ve Rol\u00fc Nedir?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish&#8217;in en g\u00fc\u00e7l\u00fc yanlar\u0131ndan biri, esnekli\u011fi ve \u00f6zelle\u015ftirilebilirli\u011fidir. Bu esneklik, <b>Varnish Configuration Language (VCL)<\/b> ad\u0131 verilen \u00f6zel bir yap\u0131land\u0131rma dili sayesinde sa\u011flan\u0131r. VCL, gelen her bir HTTP iste\u011finin ve backend&#8217;den gelen cevab\u0131n ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn farkl\u0131 a\u015famalar\u0131na m\u00fcdahale etmenize olanak tan\u0131r. VCL kullanarak; hangi i\u00e7eriklerin \u00f6nbelle\u011fe al\u0131naca\u011f\u0131n\u0131, ne kadar s\u00fcreyle saklanaca\u011f\u0131n\u0131, \u00e7erezlerin (cookies) nas\u0131l y\u00f6netilece\u011fini, belirli URL&#8217;lerin \u00f6nbellekten nas\u0131l hari\u00e7 tutulaca\u011f\u0131n\u0131 ve daha bir\u00e7ok karma\u015f\u0131k kural\u0131 tan\u0131mlayabilirsiniz. VCL dosyalar\u0131 C diline derlenerek \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in son derece h\u0131zl\u0131 ve verimlidir.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Varnish-Cachein-Diger-Onbellekleme-Cozumlerinden-Farklari\"><\/span>Varnish Cache&#8217;in Di\u011fer \u00d6nbellekleme \u00c7\u00f6z\u00fcmlerinden Farklar\u0131<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish, piyasadaki di\u011fer \u00f6nbellekleme \u00e7\u00f6z\u00fcmlerinden baz\u0131 temel \u00f6zellikleriyle ayr\u0131l\u0131r. \u00d6rne\u011fin, <a href=\"https:\/\/www.ihs.com.tr\/sunucu-kiralama\/cpanel-sunucu-kiralama.html\" target=\"_blank\">cPanel<\/a> veya Plesk gibi kontrol panelleri \u00fczerinden sunulan Nginx&#8217;in `fastcgi_cache` mod\u00fcl\u00fc veya Redis gibi \u00e7\u00f6z\u00fcmler de olduk\u00e7a pop\u00fclerdir. Ancak Varnish&#8217;in kendine has avantajlar\u0131 vard\u0131r.<\/p>\n<div class=\"karsilastirma\">\n<table>\n<thead>\n<tr>\n<th>\u00d6zellik<\/th>\n<th>Varnish Cache<\/th>\n<th>Nginx (fastcgi_cache)<\/th>\n<th>Redis \/ Memcached<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>T\u00fcr\u00fc<\/strong><\/td>\n<td>HTTP Ters Proxy<\/td>\n<td>Web Sunucusu &#038; Ters Proxy<\/td>\n<td>Bellek \u0130\u00e7i (In-Memory) Veri Deposu<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00d6nbellek Konumu<\/strong><\/td>\n<td>Genellikle RAM (Bellek)<\/td>\n<td>Disk<\/td>\n<td>RAM (Bellek)<\/td>\n<\/tr>\n<tr>\n<td><strong>Yap\u0131land\u0131rma Esnekli\u011fi<\/strong><\/td>\n<td>\u00c7ok Y\u00fcksek (VCL sayesinde)<\/td>\n<td>Orta (Yap\u0131land\u0131rma direktifleri ile)<\/td>\n<td>D\u00fc\u015f\u00fck (Uygulama kodu ile y\u00f6netilir)<\/td>\n<\/tr>\n<tr>\n<td><strong>Temel Kullan\u0131m Alan\u0131<\/strong><\/td>\n<td>Tam HTTP sayfa \u00f6nbellekleme.<\/td>\n<td>PHP-FPM gibi uygulama sunucular\u0131ndan gelen dinamik i\u00e7erikleri \u00f6nbellekleme.<\/td>\n<td>Veritaban\u0131 sorgular\u0131, objeler, oturumlar gibi uygulama verilerini \u00f6nbellekleme.<\/td>\n<\/tr>\n<tr>\n<td><strong>Geli\u015fmi\u015f \u00d6zellikler<\/strong><\/td>\n<td>ESI (Edge Side Includes), Grace Mode, Saint Mode<\/td>\n<td>Temel \u00f6nbellek temizleme, bypass kurallar\u0131.<\/td>\n<td>Veri yap\u0131lar\u0131 (Redis), basit anahtar-de\u011fer depolama (Memcached).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Bu kar\u015f\u0131la\u015ft\u0131rma, Varnish&#8217;in \u00f6zellikle tam sayfa \u00f6nbellekleme ve karma\u015f\u0131k HTTP istek\/cevap manip\u00fclasyonu konular\u0131nda ne kadar g\u00fc\u00e7l\u00fc ve esnek oldu\u011funu g\u00f6stermektedir. VCL sayesinde, bir web sitesinin \u00f6nbellekleme davran\u0131\u015f\u0131n\u0131 neredeyse s\u0131n\u0131rs\u0131z bir \u015fekilde kontrol edebilirsiniz. \u00d6zellikle <a href=\"https:\/\/www.ihs.com.tr\/web-hosting\/wordpress-hosting.html\" target=\"_blank\">WordPress hosting<\/a> gibi dinamik sitelerde do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda performans\u0131 katlayabilir.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Varnish-Cache-Kurulumu-Adim-Adim-Rehber\"><\/span>Varnish Cache Kurulumu: Ad\u0131m Ad\u0131m Rehber<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Varnish Cache kurulumu, modern Linux da\u011f\u0131t\u0131mlar\u0131nda olduk\u00e7a basittir. Bu b\u00f6l\u00fcmde, kurulum \u00f6ncesi yap\u0131lmas\u0131 gereken haz\u0131rl\u0131klardan ba\u015flayarak, Varnish&#8217;i sisteminize nas\u0131l ekleyece\u011finizi, kuraca\u011f\u0131n\u0131z\u0131 ve servisin durumunu nas\u0131l kontrol edece\u011finizi ad\u0131m ad\u0131m g\u00f6sterece\u011fiz. \u00d6rnekler, en yayg\u0131n kullan\u0131lan Debian\/Ubuntu ve CentOS\/RHEL tabanl\u0131 sistemler i\u00e7in verilecektir.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kurulum-Oncesi-Hazirlik-ve-Sistem-Gereksinimleri\"><\/span>Kurulum \u00d6ncesi Haz\u0131rl\u0131k ve Sistem Gereksinimleri<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish kurulumuna ba\u015flamadan \u00f6nce sisteminizin g\u00fcncel oldu\u011fundan ve temel gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z. Varnish, \u00f6nbelle\u011fi RAM&#8217;de tuttu\u011fu i\u00e7in yeterli miktarda belle\u011fe sahip bir <a href=\"https:\/\/www.ihs.com.tr\/sunucu-kiralama\/vds-sunucu.html\" target=\"_blank\">VDS<\/a> veya fiziksel sunucu \u00f6nerilir. Minimum 1 GB RAM yeterli olsa da, sitenizin trafi\u011fi ve \u00f6nbelle\u011fe al\u0131nacak i\u00e7erik miktar\u0131na g\u00f6re bu ihtiya\u00e7 artacakt\u0131r. Ayr\u0131ca, sisteminizde `root` veya `sudo` yetkilerine sahip olman\u0131z gerekmektedir.<\/p>\n<p>\u0130lk ad\u0131m olarak, paket listelerinizi g\u00fcncelleyin:<\/p>\n<p><b>Debian\/Ubuntu i\u00e7in:<\/b><\/p>\n<pre><code>sudo apt-get update &amp;&amp; sudo apt-get upgrade -y<\/code><\/pre>\n<p><b>CentOS\/RHEL i\u00e7in:<\/b><\/p>\n<pre><code>sudo yum update -y<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Varnish-Cache-Depolarinin-Sisteme-Eklenmesi\"><\/span>Varnish Cache Depolar\u0131n\u0131n Sisteme Eklenmesi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Linux da\u011f\u0131t\u0131mlar\u0131n\u0131n varsay\u0131lan depolar\u0131nda bulunan Varnish s\u00fcr\u00fcmleri genellikle eski olabilir. En g\u00fcncel ve stabil s\u00fcr\u00fcm\u00fc kurmak i\u00e7in Varnish&#8217;in resmi paket depolar\u0131n\u0131 sistemimize eklemek en iyi y\u00f6ntemdir.<\/p>\n<p><b>Debian\/Ubuntu i\u00e7in:<\/b><\/p>\n<p>\u00d6ncelikle gerekli olan `apt-transport-https` ve `gnupg` gibi paketleri kurun:<\/p>\n<pre><code>sudo apt-get install -y apt-transport-https gnupg<\/code><\/pre>\n<p>Ard\u0131ndan, Varnish GPG anahtar\u0131n\u0131 indirin ve sisteme ekleyin:<\/p>\n<pre><code>curl -fsSL https:\/\/packagecloud.io\/varnishcache\/varnish70\/gpgkey | sudo gpg --dearmor -o \/usr\/share\/keyrings\/varnish-archive-keyring.gpg<\/code><\/pre>\n<p>Son olarak, Varnish deposunu `sources.list` dosyan\u0131za ekleyin:<\/p>\n<pre><code>echo \"deb [signed-by=\/usr\/share\/keyrings\/varnish-archive-keyring.gpg] https:\/\/packagecloud.io\/varnishcache\/varnish70\/$(lsb_release -is | tr '[:upper:]' '[:lower:]')\/ $(lsb_release -cs) main\" | sudo tee \/etc\/apt\/sources.list.d\/varnish-cache.list<\/code><\/pre>\n<p>Paket listesini tekrar g\u00fcncelleyin:<\/p>\n<pre><code>sudo apt-get update<\/code><\/pre>\n<p><b>CentOS\/RHEL i\u00e7in:<\/b><\/p>\n<p>Varnish&#8217;in resmi deposunu do\u011frudan `yum` ile ekleyebilirsiniz. A\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rman\u0131z yeterlidir:<\/p>\n<pre><code>curl -s https:\/\/packagecloud.io\/install\/repositories\/varnishcache\/varnish70\/script.rpm.sh | sudo bash<\/code><\/pre>\n<p>Bu komut, gerekli depo yap\u0131land\u0131rmas\u0131n\u0131 sizin i\u00e7in otomatik olarak yapacakt\u0131r.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Varnish-Cache-Paketinin-Yuklenmesi-DebianUbuntu-ve-CentOSRHEL-Ornekleri\"><\/span>Varnish Cache Paketinin Y\u00fcklenmesi (Debian\/Ubuntu ve CentOS\/RHEL \u00d6rnekleri)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Depolar\u0131 sisteme ekledikten sonra Varnish paketini y\u00fcklemek olduk\u00e7a basittir.<\/p>\n<p><b>Debian\/Ubuntu i\u00e7in:<\/b><\/p>\n<p>A\u015fa\u011f\u0131daki komutu kullanarak Varnish&#8217;i kurun:<\/p>\n<pre><code>sudo apt-get install varnish -y<\/code><\/pre>\n<p><b>CentOS\/RHEL i\u00e7in:<\/b><\/p>\n<p>A\u015fa\u011f\u0131daki komutu kullanarak Varnish&#8217;i kurun:<\/p>\n<pre><code>sudo yum install varnish -y<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Varnish-Servisinin-Baslatilmasi-ve-Durum-Kontrolu\"><\/span>Varnish Servisinin Ba\u015flat\u0131lmas\u0131 ve Durum Kontrol\u00fc<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kurulum tamamland\u0131ktan sonra Varnish servisini ba\u015flatmal\u0131 ve sistem a\u00e7\u0131l\u0131\u015f\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirmelisiniz.<\/p>\n<p>Servisi ba\u015flatmak i\u00e7in:<\/p>\n<pre><code>sudo systemctl start varnish<\/code><\/pre>\n<p>Sistem a\u00e7\u0131l\u0131\u015f\u0131nda otomatik ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in:<\/p>\n<pre><code>sudo systemctl enable varnish<\/code><\/pre>\n<p>Servisin d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in durumunu sorgulayabilirsiniz:<\/p>\n<pre><code>sudo systemctl status varnish<\/code><\/pre>\n<p>E\u011fer \u00e7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6r\u00fcyorsan\u0131z, Varnish ba\u015far\u0131yla kurulmu\u015f ve \u00e7al\u0131\u015f\u0131yor demektir. Kurulumun ard\u0131ndan, Varnish&#8217;i web sunucunuzla entegre etmek i\u00e7in temel yap\u0131land\u0131rma ad\u0131mlar\u0131na ge\u00e7ebilirsiniz. Bu a\u015famada, <a href=\"https:\/\/www.ihs.com.tr\/blog\/ssh-nedir\/\" target=\"_blank\">SSH<\/a> \u00fczerinden sunucunuza eri\u015fiminizin olmas\u0131 bu i\u015flemleri yapabilmeniz i\u00e7in zorunludur.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Temel-Varnish-Cache-Yapilandirmasi\"><\/span>Temel Varnish Cache Yap\u0131land\u0131rmas\u0131<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Varnish Cache&#8217;i ba\u015far\u0131yla kurduktan sonraki en \u00f6nemli ad\u0131m, onu mevcut web sunucunuzla (Apache, Nginx vb.) uyumlu \u00e7al\u0131\u015facak \u015fekilde yap\u0131land\u0131rmakt\u0131r. Bu temel yap\u0131land\u0131rma, Varnish&#8217;in gelen web trafi\u011fini kar\u015f\u0131lamas\u0131n\u0131 ve bu trafi\u011fi arka planda \u00e7al\u0131\u015fan web sunucusuna do\u011fru bir \u015fekilde y\u00f6nlendirmesini sa\u011flar. Bu s\u00fcre\u00e7, birka\u00e7 temel yap\u0131land\u0131rma dosyas\u0131nda yap\u0131lacak de\u011fi\u015fiklikleri i\u00e7erir.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Varnish-Servis-Parametrelerinin-Yapilandirilmasi-etcdefaultvarnish-veya-systemd\"><\/span>Varnish Servis Parametrelerinin Yap\u0131land\u0131r\u0131lmas\u0131 (\/etc\/default\/varnish veya systemd)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish&#8217;in \u00e7al\u0131\u015fma \u015feklini belirleyen temel parametreler, sisteminize ba\u011fl\u0131 olarak farkl\u0131 dosyalarda bulunur. Bu parametreler Varnish&#8217;in hangi portu dinleyece\u011fini, ne kadar bellek ay\u0131raca\u011f\u0131n\u0131 ve VCL yap\u0131land\u0131rma dosyas\u0131n\u0131n nerede oldu\u011funu tan\u0131mlar.<\/p>\n<p><b>Systemd kullanan modern sistemlerde (\u00e7o\u011fu g\u00fcncel da\u011f\u0131t\u0131m):<\/b><\/p>\n<p>Varnish servis dosyas\u0131n\u0131 d\u00fczenlemek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>sudo systemctl edit --full varnish.service<\/code><\/pre>\n<p>A\u00e7\u0131lan dosyada `ExecStart` sat\u0131r\u0131n\u0131 bulup d\u00fczenlemeniz gerekecektir. Bu sat\u0131r Varnish&#8217;in ba\u015flang\u0131\u00e7 parametrelerini i\u00e7erir. \u00d6nemli parametreler \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>-a :80<\/code>: Varnish&#8217;in HTTP trafi\u011fi i\u00e7in 80 numaral\u0131 portu dinlemesini sa\u011flar.<\/li>\n<li><code>-f \/etc\/varnish\/default.vcl<\/code>: Kullan\u0131lacak VCL yap\u0131land\u0131rma dosyas\u0131n\u0131n yolunu belirtir.<\/li>\n<li><code>-s malloc,256m<\/code>: Varnish&#8217;in \u00f6nbellek i\u00e7in 256 MB RAM ay\u0131rmas\u0131n\u0131 sa\u011flar. Bu de\u011feri sunucunuzun RAM kapasitesine g\u00f6re art\u0131rabilirsiniz.<\/li>\n<li><code>-T localhost:6082<\/code>: Varnish y\u00f6netim aray\u00fcz\u00fcn\u00fcn dinleyece\u011fi adresi ve portu belirtir.<\/li>\n<\/ul>\n<p>\u00d6rnek bir `ExecStart` sat\u0131r\u0131 \u015f\u00f6yle g\u00f6r\u00fcnebilir:<\/p>\n<pre><code>ExecStart=\/usr\/sbin\/varnishd -a :80 -T localhost:6082 -f \/etc\/varnish\/default.vcl -s malloc,256m<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri yapt\u0131ktan sonra dosyay\u0131 kaydedip kapat\u0131n ve systemd&#8217;yi yeniden y\u00fckleyerek Varnish&#8217;i yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo systemctl daemon-reload\nsudo systemctl restart varnish<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Backend-Web-Sunucusunun-ApacheNginx-Port-Ayarlarinin-Degistirilmesi\"><\/span>Backend Web Sunucusunun (Apache\/Nginx) Port Ayarlar\u0131n\u0131n De\u011fi\u015ftirilmesi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish&#8217;in 80. portu dinleyebilmesi i\u00e7in, mevcut web sunucunuzun bu portu bo\u015faltmas\u0131 gerekir. Bu nedenle, web sunucunuzu 8080 gibi farkl\u0131 bir portta \u00e7al\u0131\u015facak \u015fekilde yeniden yap\u0131land\u0131rmal\u0131s\u0131n\u0131z.<\/p>\n<p><b>Nginx i\u00e7in:<\/b><\/p>\n<p>Site yap\u0131land\u0131rma dosyan\u0131z\u0131 (genellikle `\/etc\/nginx\/sites-available\/default` veya `\/etc\/nginx\/conf.d\/default.conf` i\u00e7inde) d\u00fczenleyin ve `listen` direktifini de\u011fi\u015ftirin:<\/p>\n<pre><code>#listen 80;\nlisten 8080;<\/code><\/pre>\n<p><b>Apache i\u00e7in:<\/b><\/p>\n<p>Ports yap\u0131land\u0131rma dosyas\u0131n\u0131 (`\/etc\/apache2\/ports.conf`) d\u00fczenleyin:<\/p>\n<pre><code>#Listen 80\nListen 8080<\/code><\/pre>\n<p>Ayr\u0131ca, sanal konak (virtual host) dosyan\u0131zdaki (`\/etc\/apache2\/sites-available\/000-default.conf`) port tan\u0131m\u0131n\u0131 da de\u011fi\u015ftirmeniz gerekir:<\/p>\n<pre><code>#<VirtualHost *:80>\n<VirtualHost *:8080><\/code><\/pre>\n<p>Bu de\u011fi\u015fikliklerden sonra web sunucunuzu yeniden ba\u015flatmay\u0131 unutmay\u0131n (`sudo systemctl restart nginx` veya `sudo systemctl restart apache2`).<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Varnishin-Backend-Sunucusunu-Dinlemesi-Icin-VCL-Dosyasinin-Duzenlenmesi\"><\/span>Varnish&#8217;in Backend Sunucusunu Dinlemesi \u0130\u00e7in VCL Dosyas\u0131n\u0131n D\u00fczenlenmesi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Son ad\u0131m, Varnish&#8217;e arka planda \u00e7al\u0131\u015fan web sunucusunun nerede oldu\u011funu (yeni portunu) s\u00f6ylemektir. Bu i\u015flem, VCL yap\u0131land\u0131rma dosyas\u0131 \u00fczerinden yap\u0131l\u0131r. Varsay\u0131lan VCL dosyas\u0131 genellikle `\/etc\/varnish\/default.vcl` konumundad\u0131r.<\/p>\n<p>Dosyay\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n:<\/p>\n<pre><code>sudo nano \/etc\/varnish\/default.vcl<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7inde `backend default` ile ba\u015flayan b\u00f6l\u00fcm\u00fc bulun. Bu b\u00f6l\u00fcm, Varnish&#8217;in istekleri y\u00f6nlendirece\u011fi sunucuyu tan\u0131mlar. `.port` de\u011ferini web sunucunuz i\u00e7in ayarlad\u0131\u011f\u0131n\u0131z yeni port (\u00f6rne\u011fimizde 8080) olarak de\u011fi\u015ftirin:<\/p>\n<pre><code>backend default {\n    .host = \"127.0.0.1\";\n    .port = \"8080\";\n}<\/code><\/pre>\n<p>Dosyay\u0131 kaydedip kapatt\u0131ktan sonra, Varnish servisini yeni yap\u0131land\u0131rmay\u0131 almas\u0131 i\u00e7in yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo systemctl restart varnish<\/code><\/pre>\n<p>Art\u0131k t\u00fcm yap\u0131land\u0131rma tamamland\u0131. Gelen istekler 80 portundan Varnish taraf\u0131ndan kar\u015f\u0131lanacak, \u00f6nbellekte olmayan istekler 8080 portundaki web sunucusuna y\u00f6nlendirilecek. Bu temel kurulum, bir web sitesi i\u00e7in gerekli olan <a href=\"https:\/\/www.ihs.com.tr\/blog\/hosting-nedir\/\" target=\"_blank\">hosting<\/a> altyap\u0131s\u0131n\u0131 \u00e7ok daha verimli hale getirir.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Yapilandirmanin-Dogrulanmasi-ve-Test-Edilmesi\"><\/span>Yap\u0131land\u0131rman\u0131n Do\u011frulanmas\u0131 ve Test Edilmesi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Yap\u0131land\u0131rman\u0131n do\u011fru \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 test etmek i\u00e7in `curl` komutunu kullanabilirsiniz. Sunucunuza a\u015fa\u011f\u0131daki komutu g\u00f6nderin:<\/p>\n<pre><code>curl -I http:\/\/sitenizin-adresi.com<\/code><\/pre>\n<p>Gelen HTTP ba\u015fl\u0131klar\u0131nda (headers) `Via: 1.1 varnish` ve `X-Varnish` gibi sat\u0131rlar g\u00f6r\u00fcyorsan\u0131z, Varnish iste\u011fi ba\u015far\u0131yla kar\u015f\u0131lam\u0131\u015f demektir. Ayr\u0131ca, `Age` ba\u015fl\u0131\u011f\u0131, sayfan\u0131n ne kadar s\u00fcredir \u00f6nbellekte oldu\u011funu saniye cinsinden g\u00f6sterir. \u0130kinci kez ayn\u0131 komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda `Age` de\u011ferinin artt\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz. Bu, \u00f6nbelleklemenin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131n bir kan\u0131t\u0131d\u0131r.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Varnish-Configuration-Language-VCL-ile-IstekCevap-Akisini-Yonetme\"><\/span>Varnish Configuration Language (VCL) ile \u0130stek\/Cevap Ak\u0131\u015f\u0131n\u0131 Y\u00f6netme<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Varnish&#8217;in ger\u00e7ek g\u00fcc\u00fc, esnek ve programlanabilir yap\u0131land\u0131rma dili olan VCL&#8217;de yatar. VCL, bir iste\u011fin Varnish&#8217;e girdi\u011fi andan, cevab\u0131n kullan\u0131c\u0131ya teslim edildi\u011fi ana kadar olan t\u00fcm ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc kontrol etmenizi sa\u011flar. Bu, standart yap\u0131land\u0131rma dosyalar\u0131n\u0131n \u00e7ok \u00f6tesinde, gran\u00fcler kontrol imkan\u0131 sunar. VCL&#8217;in temelini, belirli olaylar taraf\u0131ndan tetiklenen &#8220;subroutine&#8221; ad\u0131 verilen alt programlar olu\u015fturur.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"VCL-Dosyasinin-Temel-Yapisi-ve-Ana-Subroutineler\"><\/span>VCL Dosyas\u0131n\u0131n Temel Yap\u0131s\u0131 ve Ana Subroutine&#8217;ler<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Bir VCL dosyas\u0131, `backend` tan\u0131mlar\u0131 ve bir dizi `sub` (subroutine) blo\u011fundan olu\u015fur. Her `sub`, istek\/cevap d\u00f6ng\u00fcs\u00fcn\u00fcn belirli bir a\u015famas\u0131n\u0131 temsil eder. Varnish, bu a\u015famalardan ge\u00e7erken ilgili subroutine&#8217;i \u00e7al\u0131\u015ft\u0131r\u0131r ve i\u00e7indeki mant\u0131\u011f\u0131 uygular. \u0130\u015fte en \u00f6nemli VCL subroutine&#8217;leri:<\/p>\n<ul>\n<li><b>vcl_recv:<\/b> Gelen istemci iste\u011fini ilk kar\u015f\u0131layan subroutine.<\/li>\n<li><b>vcl_hash:<\/b> \u00d6nbellek nesnesi i\u00e7in bir karma (hash) anahtar\u0131 olu\u015fturur.<\/li>\n<li><b>vcl_hit:<\/b> \u0130stenen nesne \u00f6nbellekte bulundu\u011funda \u00e7al\u0131\u015f\u0131r.<\/li>\n<li><b>vcl_miss:<\/b> \u0130stenen nesne \u00f6nbellekte bulunamad\u0131\u011f\u0131nda \u00e7al\u0131\u015f\u0131r.<\/li>\n<li><b>vcl_backend_fetch:<\/b> Backend&#8217;e istek g\u00f6nderilmeden hemen \u00f6nce \u00e7al\u0131\u015f\u0131r.<\/li>\n<li><b>vcl_backend_response:<\/b> Backend&#8217;den cevap al\u0131nd\u0131ktan sonra \u00e7al\u0131\u015f\u0131r.<\/li>\n<li><b>vcl_deliver:<\/b> Cevap istemciye g\u00f6nderilmeden hemen \u00f6nce son d\u00fczenlemelerin yap\u0131ld\u0131\u011f\u0131 yerdir.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"vcl-recv-Gelen-Istemci-Isteklerini-Karsilama-ve-Yonlendirme\"><\/span>`vcl_recv`: Gelen \u0130stemci \u0130steklerini Kar\u015f\u0131lama ve Y\u00f6nlendirme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Bu, en s\u0131k kullan\u0131lan ve en \u00f6nemli subroutine&#8217;dir. Bir HTTP iste\u011fi Varnish&#8217;e ula\u015ft\u0131\u011f\u0131nda ilk olarak `vcl_recv` tetiklenir. Burada, iste\u011fi analiz edebilir ve nas\u0131l i\u015flenece\u011fine karar verebilirsiniz.<\/p>\n<p><b>\u00d6rnek Kullan\u0131mlar:<\/b><\/p>\n<ul>\n<li><b>Belirli URL&#8217;leri \u00f6nbellekten hari\u00e7 tutma:<\/b> Y\u00f6netici paneli (\u00f6rn: `\/wp-admin`) gibi dinamik ve ki\u015fiye \u00f6zel sayfalar\u0131n \u00f6nbelle\u011fe al\u0131nmas\u0131n\u0131 engellemek i\u00e7in `pass` anahtar kelimesi kullan\u0131l\u0131r. Bu, iste\u011fin do\u011frudan backend&#8217;e ge\u00e7irilmesini sa\u011flar.<\/li>\n<li><b>\u00c7erezleri (Cookies) temizleme:<\/b> Bir\u00e7ok web sitesi, gereksiz \u00e7erezler (\u00f6rn: Google Analytics \u00e7erezleri) nedeniyle sayfalar\u0131 \u00f6nbelle\u011fe almaz. `vcl_recv` i\u00e7inde bu \u00e7erezleri istekten kald\u0131rarak, sayfan\u0131n \u00f6nbelle\u011fe al\u0131nabilir hale gelmesini sa\u011flayabilirsiniz.<\/li>\n<li><b>HTTP ba\u015fl\u0131klar\u0131n\u0131 normalize etme:<\/b> Gelen isteklerdeki ba\u015fl\u0131klar\u0131 d\u00fczenleyerek \u00f6nbellek verimlili\u011fini art\u0131rabilirsiniz.<\/li>\n<\/ul>\n<pre><code>sub vcl_recv {\n    # WordPress admin panelini ve giri\u015f sayfas\u0131n\u0131 \u00f6nbelle\u011fe alma\n    if (req.url ~ \"^\/wp-(login|admin)\") {\n        return (pass);\n    }\n    # Belirli \u00e7erezler varsa iste\u011fi do\u011frudan backend'e y\u00f6nlendir\n    if (req.http.Cookie ~ \"wordpress_logged_in\") {\n        return (pass);\n    }\n    # Statik dosyalar\u0131n (resim, css, js) \u00e7erezlerini temizle\n    if (req.url ~ \"\\.(css|js|png|gif|jp(e)?g)$\") {\n        unset req.http.Cookie;\n    }\n}<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"vcl-backend-response-Backend-Sunucusundan-Gelen-Cevaplari-Yonetme\"><\/span>`vcl_backend_response`: Backend Sunucusundan Gelen Cevaplar\u0131 Y\u00f6netme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish, backend sunucusundan bir cevap ald\u0131\u011f\u0131nda bu subroutine&#8217;i \u00e7al\u0131\u015ft\u0131r\u0131r. Buras\u0131, cevab\u0131n \u00f6nbelle\u011fe al\u0131n\u0131p al\u0131nmayaca\u011f\u0131na, ne kadar s\u00fcreyle kalaca\u011f\u0131na ve cevap \u00fczerinde ne gibi de\u011fi\u015fiklikler yap\u0131laca\u011f\u0131na karar verdi\u011finiz yerdir.<\/p>\n<p><b>\u00d6rnek Kullan\u0131mlar:<\/b><\/p>\n<ul>\n<li><b>\u00d6nbellek s\u00fcresini (TTL) ayarlama:<\/b> Backend&#8217;den gelen cevab\u0131n `beresp.ttl` de\u011ferini de\u011fi\u015ftirerek, o nesnenin Varnish \u00f6nbelle\u011finde ne kadar kalaca\u011f\u0131n\u0131 belirleyebilirsiniz.<\/li>\n<li><b>Cevap ba\u015fl\u0131klar\u0131n\u0131 temizleme:<\/b> Backend&#8217;in g\u00f6nderdi\u011fi ve \u00f6nbelleklemeyi engelleyebilecek `Set-Cookie` ba\u015fl\u0131klar\u0131n\u0131 temizleyebilirsiniz.<\/li>\n<li><b>Grace Mode&#8217;u etkinle\u015ftirme:<\/b> Backend&#8217;in yan\u0131t vermemesi durumunda Varnish&#8217;in eski (s\u00fcresi dolmu\u015f) bir kopyay\u0131 sunmas\u0131n\u0131 sa\u011flamak i\u00e7in `beresp.grace` de\u011ferini ayarlayabilirsiniz.<\/li>\n<\/ul>\n<pre><code>sub vcl_backend_response {\n    # 404 gibi hata sayfalar\u0131n\u0131 k\u0131sa bir s\u00fcre i\u00e7in \u00f6nbelle\u011fe al\n    if (beresp.status == 404) {\n        set beresp.ttl = 1m;\n    }\n    # Y\u00f6netici paneli sayfalar\u0131 i\u00e7in gelen Set-Cookie ba\u015fl\u0131klar\u0131n\u0131 koru,\n    # aksi takdirde \u00f6nbelle\u011fe al\u0131nmas\u0131n\u0131 engeller.\n    if (bereq.url ~ \"^\/wp-(login|admin)\") {\n        # Do nothing\n    } else {\n        unset beresp.http.set-cookie;\n    }\n    set beresp.grace = 1h;\n}<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"vcl-deliver-Istemciye-Gonderilecek-Son-Cevabi-Hazirlama\"><\/span>`vcl_deliver`: \u0130stemciye G\u00f6nderilecek Son Cevab\u0131 Haz\u0131rlama<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Cevap (\u00f6nbellekten veya backend&#8217;den) istemciye g\u00f6nderilmeden hemen \u00f6nce `vcl_deliver` \u00e7al\u0131\u015f\u0131r. Buras\u0131, istemciye \u00f6zel ba\u015fl\u0131klar eklemek veya kald\u0131rmak i\u00e7in son \u015fans\u0131n\u0131zd\u0131r. Genellikle hata ay\u0131klama (debugging) i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p><b>\u00d6rnek Kullan\u0131m:<\/b><\/p>\n<p>\u00d6nbellek durumunu g\u00f6steren \u00f6zel bir HTTP ba\u015fl\u0131\u011f\u0131 ekleyebilirsiniz. Bu, bir sayfan\u0131n \u00f6nbellekten mi (HIT) yoksa backend&#8217;den mi (MISS) geldi\u011fini anlaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<pre><code>sub vcl_deliver {\n    if (obj.hits > 0) {\n        set resp.http.X-Cache = \"HIT\";\n    } else {\n        set resp.http.X-Cache = \"MISS\";\n    }\n}<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"vcl-hit-ve-vcl-miss-Onbellek-Durumuna-Gore-Islem-Yapma\"><\/span>`vcl_hit` ve `vcl_miss`: \u00d6nbellek Durumuna G\u00f6re \u0130\u015flem Yapma<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Bu iki subroutine, bir nesne \u00f6nbellekte bulundu\u011funda (`vcl_hit`) veya bulunamad\u0131\u011f\u0131nda (`vcl_miss`) tetiklenir. `vcl_hit` i\u00e7inde genellikle `return (deliver);` komutuyla nesnenin do\u011frudan sunulmas\u0131 sa\u011flan\u0131r. `vcl_miss` ise `return (fetch);` komutuyla iste\u011fin backend&#8217;e g\u00f6nderilmesini tetikler. Bu subroutine&#8217;ler, daha karma\u015f\u0131k \u00f6nbellek ge\u00e7ersiz k\u0131lma veya &#8220;stale&#8221; i\u00e7erik sunma senaryolar\u0131nda kullan\u0131labilir.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Gelismis-Varnish-Cache-Yapilandirmalari-ve-Optimizasyon-Teknikleri\"><\/span>Geli\u015fmi\u015f Varnish Cache Yap\u0131land\u0131rmalar\u0131 ve Optimizasyon Teknikleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Temel kurulum ve yap\u0131land\u0131rman\u0131n \u00f6tesinde, Varnish Cache&#8217;in sundu\u011fu geli\u015fmi\u015f \u00f6zellikler sayesinde web sitenizin performans\u0131n\u0131 ve g\u00fcvenilirli\u011fini en \u00fcst d\u00fczeye \u00e7\u0131karabilirsiniz. Bu b\u00f6l\u00fcmde, \u00e7erez y\u00f6netimi, belirli URL&#8217;leri hari\u00e7 tutma, \u00f6nbellek temizleme ve kesintisiz hizmet sa\u011flama gibi kritik optimizasyon tekniklerini ele alaca\u011f\u0131z.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cookie-Cerez-ve-Oturum-Bilgilerini-Yonetme\"><\/span>Cookie (\u00c7erez) ve Oturum Bilgilerini Y\u00f6netme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish&#8217;in varsay\u0131lan davran\u0131\u015f\u0131, bir istekte veya cevapta `Cookie` veya `Set-Cookie` ba\u015fl\u0131\u011f\u0131 g\u00f6rd\u00fc\u011f\u00fcnde o nesneyi \u00f6nbelle\u011fe almamakt\u0131r. \u00c7\u00fcnk\u00fc \u00e7erezler genellikle kullan\u0131c\u0131ya \u00f6zel oturum bilgileri i\u00e7erir. Ancak bir\u00e7ok site, Google Analytics (`__utm*`) gibi oturumla ilgisi olmayan \u00e7erezler kullan\u0131r. Bu \u00e7erezler nedeniyle t\u00fcm sitenin \u00f6nbelleklenmemesi b\u00fcy\u00fck bir performans kayb\u0131d\u0131r. VCL kullanarak bu gereksiz \u00e7erezleri temizleyebiliriz.<\/p>\n<pre><code>sub vcl_recv {\n    # E\u011fer istekte \u00e7erez varsa\n    if (req.http.Cookie) {\n        # Yaln\u0131zca oturumla ilgili olmayan \u00e7erezleri kald\u0131r\n        set req.http.Cookie = regsuball(req.http.Cookie, \"(^|;)\\s*__utm.=[^;]+\", \"\");\n        # \u00c7erez ba\u015fl\u0131\u011f\u0131n\u0131 gereksiz noktal\u0131 virg\u00fcllerden temizle\n        set req.http.Cookie = regsub(req.http.Cookie, \"^;\\s*\", \"\");\n        # E\u011fer t\u00fcm \u00e7erezler temizlendiyse, Cookie ba\u015fl\u0131\u011f\u0131n\u0131 tamamen kald\u0131r\n        if (req.http.Cookie == \"\") {\n            unset req.http.Cookie;\n        }\n    }\n}<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Belirli-URLleri-ve-Dizinleri-Onbellekten-Haric-Tutma-Cache-Bypass\"><\/span>Belirli URL&#8217;leri ve Dizinleri \u00d6nbellekten Hari\u00e7 Tutma (Cache Bypass)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Al\u0131\u015fveri\u015f sepeti, \u00f6deme sayfalar\u0131, kullan\u0131c\u0131 profilleri veya y\u00f6netim panelleri gibi dinamik ve ki\u015fiye \u00f6zel sayfalar asla \u00f6nbelle\u011fe al\u0131nmamal\u0131d\u0131r. `vcl_recv` i\u00e7inde, bu URL&#8217;leri tespit edip iste\u011fi `pass` komutuyla do\u011frudan backend sunucusuna y\u00f6nlendirebiliriz. Bu i\u015fleme &#8220;cache bypass&#8221; denir.<\/p>\n<pre><code>sub vcl_recv {\n    # Al\u0131\u015fveri\u015f sepeti, hesab\u0131m ve \u00f6deme sayfalar\u0131n\u0131 \u00f6nbelle\u011fe alma\n    if (req.url ~ \"^\/(sepet|hesabim|odeme|checkout|cart)\") {\n        return (pass);\n    }\n}<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Onbellek-Temizleme-ve-Gecersiz-Kilma-Purging-Invalidation\"><\/span>\u00d6nbellek Temizleme ve Ge\u00e7ersiz K\u0131lma (Purging &#038; Invalidation)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Bir i\u00e7eri\u011fi g\u00fcncelledi\u011finizde, Varnish \u00f6nbelle\u011findeki eski kopyan\u0131n temizlenmesi gerekir. Bu i\u015fleme &#8220;purging&#8221; (temizleme) veya &#8220;invalidation&#8221; (ge\u00e7ersiz k\u0131lma) denir. Varnish&#8217;i, \u00f6zel bir HTTP metodu (\u00f6rn: `PURGE`) ile gelen isteklere yan\u0131t verecek \u015fekilde yap\u0131land\u0131rabilirsiniz.<\/p>\n<p>Bunun i\u00e7in VCL dosyan\u0131za bir Eri\u015fim Kontrol Listesi (ACL) ekleyerek sadece belirli IP&#8217;lerin temizleme yapmas\u0131na izin vermek g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00f6nemlidir.<\/p>\n<pre><code># Sadece bu IP'lerin purge yapmas\u0131na izin ver\nacl purge_ips {\n    \"localhost\";\n    \"127.0.0.1\";\n    \"SUNUCUNUZUN_IP_ADRESI\";\n}\n\nsub vcl_recv {\n    if (req.method == \"PURGE\") {\n        if (!client.ip ~ purge_ips) {\n            return (synth(405, \"Not allowed.\"));\n        }\n        return (hash);\n    }\n}\n\nsub vcl_hit {\n    if (req.method == \"PURGE\") {\n        return (purge);\n    }\n}\n\nsub vcl_miss {\n    if (req.method == \"PURGE\") {\n        return (purge);\n    }\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmadan sonra, `curl -X PURGE http:\/\/siteniz.com\/guncellenen-sayfa` komutu ile ilgili sayfan\u0131n \u00f6nbelle\u011fini temizleyebilirsiniz. Bir\u00e7ok CMS i\u00e7in bu i\u015flemi otomatikle\u015ftiren eklentiler mevcuttur.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"HTTP-Basliklarini-Headers-Yoneterek-Onbellek-Davranisini-Kontrol-Etme\"><\/span>HTTP Ba\u015fl\u0131klar\u0131n\u0131 (Headers) Y\u00f6neterek \u00d6nbellek Davran\u0131\u015f\u0131n\u0131 Kontrol Etme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>VCL, hem gelen isteklerin (`req.http.*`) hem de backend&#8217;den gelen cevaplar\u0131n (`beresp.http.*`) ba\u015fl\u0131klar\u0131n\u0131 tamamen manip\u00fcle etmenize olanak tan\u0131r. Bu, \u00f6nbellekleme davran\u0131\u015f\u0131n\u0131 ince ayarlamak i\u00e7in \u00e7ok g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. \u00d6rne\u011fin, backend uygulaman\u0131z `Cache-Control` ba\u015fl\u0131klar\u0131n\u0131 do\u011fru ayarlam\u0131yorsa, bunu `vcl_backend_response` i\u00e7inde d\u00fczeltebilirsiniz.<\/p>\n<pre><code>sub vcl_backend_response {\n    # T\u00fcm resim dosyalar\u0131n\u0131n taray\u0131c\u0131da 1 g\u00fcn \u00f6nbelle\u011fe al\u0131nmas\u0131n\u0131 sa\u011fla\n    if (bereq.url ~ \"\\.(png|gif|jpg|jpeg)$\") {\n        set beresp.http.Cache-Control = \"public, max-age=86400\";\n    }\n}<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Grace-Mode-ve-Saint-Mode-ile-Kesintisiz-Hizmet\"><\/span>Grace Mode ve Saint Mode ile Kesintisiz Hizmet<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><b>Grace Mode:<\/b> Bu \u00f6zellik, backend sunucunuzun \u00e7\u00f6kmesi veya yava\u015f yan\u0131t vermesi durumunda Varnish&#8217;in devreye girmesini sa\u011flar. Normalde bir nesnenin \u00f6nbellek s\u00fcresi (TTL) doldu\u011funda Varnish onu siler. Ancak `grace` s\u00fcresi tan\u0131mlarsan\u0131z, Varnish TTL&#8217;i dolmu\u015f bu nesneyi belirli bir ek s\u00fcre boyunca saklamaya devam eder. E\u011fer bu s\u00fcre i\u00e7inde backend sunucunuz ula\u015f\u0131lamaz hale gelirse, Varnish kullan\u0131c\u0131lara s\u00fcresi dolmu\u015f &#8220;eski&#8221; i\u00e7eri\u011fi sunarak sitenin tamamen \u00e7\u00f6kmesini engeller.<\/p>\n<p><b>Saint Mode:<\/b> Birden fazla backend sunucusuyla \u00e7al\u0131\u015f\u0131rken (load balancing), bir sunucu ar\u0131zaland\u0131\u011f\u0131nda Varnish&#8217;in o sunucuyu &#8220;hasta&#8221; (sick) olarak i\u015faretlemesini ve belirli bir s\u00fcre boyunca ona istek g\u00f6ndermemesini sa\u011flar. Bu, tek bir sunucudaki sorunun t\u00fcm siteyi etkilemesini \u00f6nler.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"ESI-Edge-Side-Includes-Kullanarak-Parcali-Onbellekleme\"><\/span>ESI (Edge Side Includes) Kullanarak Par\u00e7al\u0131 \u00d6nbellekleme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>ESI, bir web sayfas\u0131n\u0131n farkl\u0131 par\u00e7alar\u0131n\u0131 ba\u011f\u0131ms\u0131z olarak \u00f6nbelle\u011fe alman\u0131z\u0131 sa\u011flayan bir teknolojidir. \u00d6rne\u011fin, bir haber sitesinde sayfan\u0131n ana i\u00e7eri\u011fi (makale) uzun s\u00fcre \u00f6nbellekte kalabilirken, kenar \u00e7ubu\u011fundaki &#8220;En \u00c7ok Okunanlar&#8221; b\u00f6l\u00fcm\u00fc daha s\u0131k g\u00fcncellenebilir. ESI ile, ana sayfa \u015fablonunu \u00f6nbelle\u011fe al\u0131p, &#8220;En \u00c7ok Okunanlar&#8221; b\u00f6l\u00fcm\u00fcn\u00fc \u00f6zel bir `<esi:include>` etiketi ile i\u015faretleyebilirsiniz. Varnish bu etiketi g\u00f6rd\u00fc\u011f\u00fcnde, ilgili par\u00e7ay\u0131 ayr\u0131 bir istek olarak i\u015fler ve kendi \u00f6nbellek kurallar\u0131na g\u00f6re y\u00f6netir. Bu, tamamen dinamik g\u00f6r\u00fcnen ancak b\u00fcy\u00fck \u00f6l\u00e7\u00fcde \u00f6nbellekten sunulan sayfalar olu\u015fturman\u0131za olanak tan\u0131r. Bu y\u00f6ntem, <a href=\"https:\/\/www.ihs.com.tr\/sunucu-kiralama\/vps-server.html\" target=\"_blank\">VPS<\/a> kaynaklar\u0131n\u0131n daha verimli kullan\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Varnish-Cache-Izleme-Monitoring-ve-Sorun-Giderme\"><\/span>Varnish Cache \u0130zleme (Monitoring) ve Sorun Giderme<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Varnish Cache&#8217;in performans\u0131n\u0131 ve sa\u011fl\u0131\u011f\u0131n\u0131 s\u00fcrekli olarak izlemek, olas\u0131 sorunlar\u0131 proaktif olarak tespit etmek ve yap\u0131land\u0131rman\u0131z\u0131 optimize etmek i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Varnish, bu ama\u00e7la kullan\u0131labilecek bir dizi g\u00fc\u00e7l\u00fc komut sat\u0131r\u0131 arac\u0131yla birlikte gelir. Bu ara\u00e7lar, Varnish&#8217;in i\u00e7 i\u015fleyi\u015fine dair derinlemesine bilgi sa\u011flar.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"varnishstat-ile-Gercek-Zamanli-Istatistikleri-Izleme\"><\/span>`varnishstat` ile Ger\u00e7ek Zamanl\u0131 \u0130statistikleri \u0130zleme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>`varnishstat`, Varnish&#8217;in performans\u0131 hakk\u0131nda ger\u00e7ek zamanl\u0131 istatistikler sunan bir ara\u00e7t\u0131r. Terminalde `varnishstat` komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, s\u00fcrekli g\u00fcncellenen bir saya\u00e7lar listesi g\u00f6r\u00fcrs\u00fcn\u00fcz. Bu istatistikler, \u00f6nbellek isabet oran\u0131 (cache hit rate), backend sunucusuna yap\u0131lan istek say\u0131s\u0131, bellek kullan\u0131m\u0131 ve daha bir\u00e7ok kritik metrik hakk\u0131nda bilgi verir.<\/p>\n<p><b>\u00d6nemli `varnishstat` Saya\u00e7lar\u0131:<\/b><\/p>\n<ul>\n<li><b>MAIN.cache_hit:<\/b> \u00d6nbellekten ba\u015far\u0131yla sunulan isteklerin toplam say\u0131s\u0131.<\/li>\n<li><b>MAIN.cache_miss:<\/b> \u00d6nbellekte bulunamayan ve backend&#8217;e y\u00f6nlendirilen isteklerin say\u0131s\u0131.<\/li>\n<li><b>MAIN.backend_fail:<\/b> Backend sunucusuna yap\u0131lan ba\u015far\u0131s\u0131z ba\u011flant\u0131lar\u0131n say\u0131s\u0131. Bu say\u0131n\u0131n artmas\u0131, backend sunucunuzda bir sorun oldu\u011funa i\u015faret eder.<\/li>\n<li><b>MAIN.uptime:<\/b> Varnish servisinin ne kadar s\u00fcredir \u00e7al\u0131\u015ft\u0131\u011f\u0131.<\/li>\n<\/ul>\n<p>\u00d6nbellek isabet oran\u0131n\u0131 (hit rate) hesaplamak i\u00e7in `cache_hit` de\u011ferini `cache_hit + cache_miss` toplam\u0131na b\u00f6lebilirsiniz. Y\u00fcksek bir isabet oran\u0131 (%90 ve \u00fczeri), Varnish yap\u0131land\u0131rman\u0131z\u0131n etkili oldu\u011funu g\u00f6sterir.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"varnishlog-ile-IstekCevap-Dongusunu-Detayli-Analiz-Etme\"><\/span>`varnishlog` ile \u0130stek\/Cevap D\u00f6ng\u00fcs\u00fcn\u00fc Detayl\u0131 Analiz Etme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>`varnishlog` arac\u0131, Varnish&#8217;in i\u015fledi\u011fi her bir iste\u011fin ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc son derece ayr\u0131nt\u0131l\u0131 bir \u015fekilde g\u00f6sterir. Belirli bir iste\u011fin VCL subroutine&#8217;lerinde nas\u0131l i\u015flendi\u011fini, hangi ba\u015fl\u0131klar\u0131n eklendi\u011fini veya \u00e7\u0131kar\u0131ld\u0131\u011f\u0131n\u0131 ve \u00f6nbelle\u011fe neden al\u0131n\u0131p al\u0131nmad\u0131\u011f\u0131n\u0131 anlamak i\u00e7in paha bi\u00e7ilmezdir. Varsay\u0131lan olarak t\u00fcm loglar\u0131 ak\u0131\u015f halinde g\u00f6sterir, ancak belirli istekleri filtrelemek i\u00e7in sorgu dili kullan\u0131labilir.<\/p>\n<p>\u00d6rne\u011fin, yaln\u0131zca \u00f6nbelle\u011fe al\u0131namayan (miss) istekleri g\u00f6rmek i\u00e7in:<\/p>\n<pre><code>varnishlog -q \"VCL_call eq 'MISS'\"<\/code><\/pre>\n<p>Belirli bir URL&#8217;yi i\u00e7eren istekleri analiz etmek i\u00e7in:<\/p>\n<pre><code>varnishlog -q \"ReqURL eq '\/ilgili-sayfa.html'\"<\/code><\/pre>\n<p>`varnishlog` \u00e7\u0131kt\u0131s\u0131n\u0131 yorumlamak ba\u015flang\u0131\u00e7ta zor olabilir, ancak bir iste\u011fin Varnish i\u00e7inde izledi\u011fi yolu ad\u0131m ad\u0131m g\u00f6sterdi\u011fi i\u00e7in sorun gidermede en g\u00fc\u00e7l\u00fc yard\u0131mc\u0131n\u0131zd\u0131r.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"varnishtop-ile-Populer-Istekleri-Goruntuleme\"><\/span>`varnishtop` ile Pop\u00fcler \u0130stekleri G\u00f6r\u00fcnt\u00fcleme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>`varnishtop` komutu, `top` komutuna benzer \u015fekilde \u00e7al\u0131\u015f\u0131r ve en s\u0131k talep edilen URL&#8217;leri, kullan\u0131c\u0131 ajanlar\u0131n\u0131 (user-agent), IP adreslerini ve di\u011fer log verilerini ger\u00e7ek zamanl\u0131 olarak listeler. Bu ara\u00e7, sitenize en \u00e7ok hangi sayfalar\u0131n veya botlar\u0131n istek g\u00f6nderdi\u011fini h\u0131zl\u0131ca g\u00f6rmek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>En \u00e7ok istenen URL&#8217;leri g\u00f6rmek i\u00e7in:<\/p>\n<pre><code>varnishtop -i ReqURL<\/code><\/pre>\n<p>En \u00e7ok &#8220;miss&#8221; olan URL&#8217;leri g\u00f6rmek i\u00e7in:<\/p>\n<pre><code>varnishtop -i BereqURL<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Sik-Karsilasilan-Yapilandirma-Hatalari-ve-Cozumleri\"><\/span>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Yap\u0131land\u0131rma Hatalar\u0131 ve \u00c7\u00f6z\u00fcmleri<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><b>D\u00fc\u015f\u00fck \u00d6nbellek \u0130sabet Oran\u0131 (Low Cache Hit Rate):<\/b> Genellikle gereksiz \u00e7erezlerin temizlenmemesinden kaynaklan\u0131r. `vcl_recv` i\u00e7inde analitik ve reklam \u00e7erezlerini kald\u0131rd\u0131\u011f\u0131n\u0131zdan emin olun. `varnishlog` ile istekleri analiz ederek neden `pass` veya `miss` olduklar\u0131n\u0131 kontrol edin.<\/li>\n<li><b>&#8220;503 Backend fetch failed&#8221; Hatas\u0131:<\/b> Bu hata, Varnish&#8217;in backend sunucusuna (Apache\/Nginx) ula\u015famad\u0131\u011f\u0131 anlam\u0131na gelir. Backend sunucusunun \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 ve VCL dosyan\u0131zdaki `.port` ve `.host` tan\u0131mlar\u0131n\u0131n do\u011fru oldu\u011funu kontrol edin. Ayr\u0131ca sunucu g\u00fcvenlik duvar\u0131n\u0131n (firewall) bu port \u00fczerinden ileti\u015fime izin verdi\u011finden emin olun.<\/li>\n<li><b>Dinamik \u0130\u00e7eri\u011fin \u00d6nbelle\u011fe Al\u0131nmas\u0131:<\/b> Kullan\u0131c\u0131 giri\u015fi yap\u0131ld\u0131ktan sonra ki\u015fiye \u00f6zel i\u00e7eri\u011fin veya y\u00f6netim panelinin \u00f6nbellekten sunulmas\u0131 ciddi bir sorundur. Oturum ba\u015flatan (`wordpress_logged_in` gibi) \u00e7erezlerin varl\u0131\u011f\u0131nda iste\u011fi `pass` ile backend&#8217;e y\u00f6nlendirdi\u011finizden ve hassas URL&#8217;leri \u00f6nbellekten hari\u00e7 tuttu\u011funuzdan emin olun.<\/li>\n<li><b>VCL Derleme Hatas\u0131:<\/b> VCL dosyan\u0131zda bir s\u00f6zdizimi hatas\u0131 (syntax error) varsa Varnish servisi ba\u015flamaz. `varnishd -C -f \/etc\/varnish\/default.vcl` komutunu kullanarak VCL dosyan\u0131z\u0131 derleyip hata olup olmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz.<\/li>\n<\/ul>\n<p>Bu ara\u00e7lar\u0131 ve y\u00f6ntemleri kullanarak Varnish Cache&#8217;in performans\u0131n\u0131 s\u00fcrekli olarak optimize edebilir ve sitenizin her zaman en y\u00fcksek h\u0131zda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayabilirsiniz. \u00d6zellikle <a href=\"https:\/\/www.ihs.com.tr\/blog\/alan-adi-domain-tescili.html\" target=\"_blank\">alan ad\u0131<\/a> tescili sonras\u0131 kurulan yeni projelerde, performans en ba\u015f\u0131ndan itibaren \u00f6nceliklendirilmelidir.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Varnish-Cache-Cozumleri-Icin-Neden-IHS-Telekomu-Tercih-Etmelisiniz\"><\/span>Varnish Cache \u00c7\u00f6z\u00fcmleri \u0130\u00e7in Neden \u0130HS Telekom&#8217;u Tercih Etmelisiniz?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Varnish Cache, do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda web siteleri i\u00e7in ola\u011fan\u00fcst\u00fc bir performans art\u0131\u015f\u0131 sa\u011flayan g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Ancak kurulumu, optimizasyonu ve y\u00f6netimi teknik uzmanl\u0131k gerektirir. Yanl\u0131\u015f bir VCL kural\u0131, sitenizin yanl\u0131\u015f \u00e7al\u0131\u015fmas\u0131na veya g\u00fcvenlik a\u00e7\u0131klar\u0131na neden olabilir. \u0130HS Telekom olarak, Varnish Cache gibi geli\u015fmi\u015f teknolojileri en verimli \u015fekilde kullanman\u0131z i\u00e7in size uzman altyap\u0131 ve destek hizmetleri sunuyoruz.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Uzman-Teknik-Destek-ve-Yapilandirma-Danismanligi\"><\/span>Uzman Teknik Destek ve Yap\u0131land\u0131rma Dan\u0131\u015fmanl\u0131\u011f\u0131<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish Cache yap\u0131land\u0131rmas\u0131, her web sitesinin kendine \u00f6zg\u00fc ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmelidir. E-ticaret siteleri i\u00e7in \u00e7erez ve sepet y\u00f6netimi, haber portallar\u0131 i\u00e7in ESI ile par\u00e7al\u0131 \u00f6nbellekleme veya WordPress siteleri i\u00e7in y\u00f6netici paneli korumas\u0131 gibi senaryolar farkl\u0131 VCL kurallar\u0131 gerektirir. \u0130HS Telekom&#8217;un deneyimli teknik ekibi, sitenizin yap\u0131s\u0131n\u0131 analiz ederek size en uygun Varnish yap\u0131land\u0131rmas\u0131 konusunda dan\u0131\u015fmanl\u0131k sa\u011flar ve olas\u0131 sorunlar\u0131n \u00e7\u00f6z\u00fcm\u00fcnde h\u0131zl\u0131 destek sunar.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Varnish-Cache-icin-Optimize-Edilmis-Yuksek-Performansli-Sunucu-Altyapisi\"><\/span>Varnish Cache i\u00e7in Optimize Edilmi\u015f Y\u00fcksek Performansl\u0131 Sunucu Altyap\u0131s\u0131<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Varnish, \u00f6nbelle\u011fi RAM&#8217;de tuttu\u011fu i\u00e7in performans\u0131 do\u011frudan sunucu donan\u0131m\u0131n\u0131n kalitesine ba\u011fl\u0131d\u0131r. \u0130HS Telekom, y\u00fcksek frekansl\u0131 i\u015flemcilere, bol miktarda RAM&#8217;e ve NVMe SSD depolama birimlerine sahip sunucular\u0131yla Varnish Cache&#8217;in potansiyelini tam olarak ortaya \u00e7\u0131karacak altyap\u0131y\u0131 sa\u011flar. Y\u00fcksek performansl\u0131 <a href=\"https:\/\/www.ihs.com.tr\/sunucu-kiralama\/linux-sanal-sunucu.html\" target=\"_blank\">Linux sanal sunucu<\/a> \u00e7\u00f6z\u00fcmlerimiz, Varnish&#8217;in milisaniyeler i\u00e7inde cevap vermesi i\u00e7in gereken g\u00fcc\u00fc sunar.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Guvenlik-ve-Sureklilik-Odakli-Yonetilen-Hizmetler\"><\/span>G\u00fcvenlik ve S\u00fcreklilik Odakl\u0131 Y\u00f6netilen Hizmetler<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Sunucu y\u00f6netimi sadece performansla ilgili de\u011fildir; g\u00fcvenlik ve s\u00fcreklilik de ayn\u0131 derecede \u00f6nemlidir. Y\u00f6netilen hizmetlerimiz kapsam\u0131nda sunucunuzun g\u00fcvenli\u011fini sa\u011fl\u0131yor, Varnish ve di\u011fer sistem bile\u015fenlerinin g\u00fcncellemelerini takip ediyor ve olas\u0131 sald\u0131r\u0131lara kar\u015f\u0131 proaktif \u00f6nlemler al\u0131yoruz. Ayr\u0131ca, Varnish&#8217;in &#8220;Grace Mode&#8221; gibi \u00f6zellikleri, altyap\u0131sal sorunlarda bile sitenizin kesintisiz hizmet vermesine yard\u0131mc\u0131 olacak \u015fekilde yap\u0131land\u0131r\u0131l\u0131r. Web sitenizin g\u00fcvenli\u011fi i\u00e7in gerekli olan <a href=\"https:\/\/www.ihs.com.tr\/ssl\/\" target=\"_blank\">SSL sertifikas\u0131<\/a> kurulumu ve y\u00f6netimi de hizmetlerimizin bir par\u00e7as\u0131d\u0131r.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Olceklenebilir-ve-Ihtiyaclariniza-Ozel-Cozumler\"><\/span>\u00d6l\u00e7eklenebilir ve \u0130htiya\u00e7lar\u0131n\u0131za \u00d6zel \u00c7\u00f6z\u00fcmler<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0130\u015fletmeniz b\u00fcy\u00fcd\u00fck\u00e7e ve web sitenizin trafi\u011fi artt\u0131k\u00e7a, altyap\u0131 ihtiya\u00e7lar\u0131n\u0131z da de\u011fi\u015fecektir. \u0130HS Telekom, trafi\u011finizdeki art\u0131\u015flara an\u0131nda yan\u0131t verebilecek \u00f6l\u00e7eklenebilir sunucu \u00e7\u00f6z\u00fcmleri sunar. \u0130ster payla\u015f\u0131ml\u0131 bir <a href=\"https:\/\/www.ihs.com.tr\/web-hosting\/\" target=\"_blank\">hosting<\/a> paketinden Varnish destekli bir VPS&#8217;e ge\u00e7i\u015f yap\u0131n, ister birden \u00e7ok sunucu ile y\u00fck dengeleme (load balancing) senaryolar\u0131 kurgulay\u0131n, ihtiya\u00e7lar\u0131n\u0131za en uygun ve maliyet etkin \u00e7\u00f6z\u00fcm\u00fc sizin i\u00e7in tasarl\u0131yoruz.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, web sitelerinin h\u0131z\u0131 ve performans\u0131, kullan\u0131c\u0131 memnuniyeti ve arama motoru s\u0131ralamalar\u0131 i\u00e7in kritik bir fakt\u00f6rd\u00fcr. Yava\u015f a\u00e7\u0131lan bir sayfa,&hellip;<\/p>\n","protected":false},"author":3,"featured_media":15647,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[414],"tags":[],"class_list":["post-15646","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sunucu"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/posts\/15646","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/comments?post=15646"}],"version-history":[{"count":1,"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/posts\/15646\/revisions"}],"predecessor-version":[{"id":15648,"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/posts\/15646\/revisions\/15648"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/media\/15647"}],"wp:attachment":[{"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/media?parent=15646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/categories?post=15646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ihs.com.tr\/blog\/wp-json\/wp\/v2\/tags?post=15646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}