Dinamik web uygulamaları ve API'ler için bellek içi (in-memory) mikro-önbellekleme simülasyonu. AWS CloudFront ve Fastly egress faturalarını sıfırlayın; Varnish 7.x ve ESI ile origin sunucu yükünü %90 azaltarak <1ms yanıt süresi elde edin.
Varnish mikro-önbellekleme ile dinamik HTML yanıtlarında dahi %85-%95 isabet kolaylıkla yakalanır.
AWS CloudFront ($0.085/GB + Req) maliyet modeli baz alınmaktadır.
Bu donanım, aylık 1.86 TB trafiği ve saniyede 25 istek zirve yükünü bellekten mikro-saniye gecikmeyle karşılamak için optimize edilmiştir.
| Altyapı Kalemi | Mevcut Model (Bulut CDN + Origin) | Varnish VDS Modeli | Net Değişim |
|---|---|---|---|
| CDN / Egress Maliyeti (1.86 TB) | $187 | $0 (VDS dahilinde sınırsız/yüksek hat) | -$187 |
| Origin Backend Sunucuları | 4 Adet ($160) | 1 Adet ($40) | -$120 |
| Ters Vekil Önbellek (Varnish VDS) | $0 | $16 | +$16 |
| TOPLAM AYLIK GİDER | $347 | $56 | -$291 (%84) |
vcl 4.1;
import std;
backend default {
.host = "origin-backend";
.port = "8080";
.connect_timeout = 3s;
.first_byte_timeout = 15s;
.between_bytes_timeout = 2s;
}
acl purge_acl {
"localhost";
"127.0.0.1";
"10.0.0.0"/8;
}
sub vcl_recv {
# 1. PURGE / BAN isteklerini doğrula
if (req.method == "PURGE") {
if (!client.ip ~ purge_acl) {
return (synth(405, "Yetkisiz Purge Talebi"));
}
return (purge);
}
# 2. Statik dosya ve ESI optimizasyonu
if (req.url ~ "\.(jpg|jpeg|png|gif|webp|avif|css|js|woff2|svg)$") {
unset req.http.Cookie;
return (hash);
}
# 3. Dynamic HTML için Cookie filtreleme (yalnızca oturum çerezi bırak)
if (req.http.Cookie) {
set req.http.Cookie = ";" + req.http.Cookie;
set req.http.Cookie = regsuball(req.http.Cookie, "; +", ";");
set req.http.Cookie = regsuball(req.http.Cookie, ";(session_id|auth_token)=", "; \1=");
set req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", "");
set req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", "");
if (req.http.Cookie == "") {
unset req.http.Cookie;
}
}
return (hash);
}
sub vcl_backend_response {
# Edge Side Includes (ESI) ayrıştırmasını tetikle
if (beresp.http.content-type ~ "text/html") {
set beresp.do_esi = true;
set beresp.ttl = 120s;
set beresp.grace = 1h; # Stale-While-Revalidate (Origin çökse dahi eski önbelleği sun)
}
# Statik asset TTL süresi (7 gün)
if (bereq.url ~ "\.(css|js|woff2|webp)$") {
set beresp.ttl = 7d;
unset beresp.http.Set-Cookie;
}
return (deliver);
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
set resp.http.X-Cache-Hits = obj.hits;
} else {
set resp.http.X-Cache = "MISS";
}
return (deliver);
}Geleneksel web mimarilerinde (Next.js SSR, WordPress, Magento, Laravel, Go API) her HTTP isteği PHP-FPM, Node.js veya veritabanı (PostgreSQL/MySQL) katmanına kadar ulaşır. Ziyaretçi sayısı 1.000 veya 10.000 anlık kullanıcıya ulaştığında CPU çekirdekleri kilitlenir, TTFB (Time to First Byte) 1000ms üzerine fırlar ve veritabanı bağlantı havuzları tükenir.
Varnish Cache, istekleri origin sunucuya gitmeden önce VDS RAM'inde yakalar. C dilinde yazılmış, çok iş parçacıklı (pthreads) ve epoll/kqueue tabanlı mimarisi sayesinde tek bir 8 çekirdekli VDS üzerinde saniyede 50.000 ile 100.000 istek karşılayabilir ve yanıt süresini 0.5ms ile 2ms arasına düşürür.
Aynı anda popüler bir ürün sayfasına gelen 5.000 eşzamanlı istekte (Cache Stampede), Varnish origin'e yalnızca 1 adet istek iletir. Diğer 4.999 isteği askıya alır ve ilk yanıt döner dönmez tüm istemcilere RAM'den topluca iletir.
Önbellek süresi dolduğunda (TTL expired), Varnish kullanıcıyı bekletmez. Bellekteki eski (stale) kopyayı milisaniyeler içinde sunarken, arka planda asenkron olarak origin sunucudan güncel içeriği çeker.
Bir web sayfasının gövdesi (header, footer, ürün açıklaması, resimler) herkes için aynıdır; sadece sepet ve kullanıcı adı dinamiktir. ESI ile sayfanın %98'i 24 saat önbelleğe alınırken, dinamik parçalar Varnish tarafından anlık birleştirilir.
AWS CloudFront (GB başı $0.085) veya Fastly (GB başı $0.12) gibi genel bulut CDN sağlayıcıları aylık 10-50 TB trafik üreten orta-büyük ölçekli platformlarda ayda $1,000 - $6,000 civarında veri çıkış faturası çıkarır. Üstelik özel VCL kurgusu veya ESI yetenekleri genellikle kurumsal (Enterprise) sözleşmeler gerektirir.
Türkiye veya Avrupa veri merkezinde kiralanacak 1 Gbps / 2.5 Gbps sınırsız portlu bir VDS ($16 - $35/ay), kendi Varnish kurgunuzla aynı trafiği %95 daha düşük maliyetle, tam veri egemenliği ve sıfır kota aşım riskiyle servis etmenizi sağlar.
-s malloc,XXG (RAM tabanlı tahsisat) kullanın. Disk (file) tabanlı depolama, yüksek RPS altında I/O darboğazına neden olur.BAN obj.http.X-Cache-Tags ~ "product-104" göndererek anlık hedefli temizleme uygulayın.