<-
Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.4

?nbellek Kullan?m K?lavuzu

Mevcut Diller:  en  |  fr  |  tr 

Bu belge mod_cache, mod_cache_disk, mod_file_cache modülleri ve htcacheclean i?in bir ba?vuru k?lavuzu niteli?indedir. HTTP sunucusu ve vekil olarak ?al??mada i?lemleri h?zland?rmak i?in bilinen sorunlar ve yanl?? yap?land?rmalardan ka??narak Apache HTTPD sunucusunun ?nbellekleme ?zelliklerinin nas?l kullan?laca?? a??klanm??t?r.

Support Apache!

Ayr?ca bak?n?z:

top

Giri?

Apache HTTP sunucusu, sunucunun ba?ar?m?n? ?e?itli yollarla artt?rmak üzere tasarlanm?? bir dizi ?nbellekleme ?zelli?ine sahiptir.

ü? durumlu RFC2616 HTTP ?nbelleklemesi
mod_cache ve destek modülü mod_cache_disk ak?lc? ve HTTP'ye uygun ?nbellekleme sa?lar. ??eri?in kendisi ?nbellekte saklan?r ve mod_cache, RFC2616'n?n 13. b?lümünde a??kland??? gibi, i?eri?in ?nbelleklenebilirli?ini denetleyen ?e?itli HTTP ba?l?klar?n?n ve se?eneklerinin tümünü onurland?rmay? hedefler. Devingen yerel i?erik veya vekalet edilen i?erik ile ilgilendi?iniz durumda veya muhtemel bir yava? disk üzerinde yerel dosyalara eri?imi h?zland?rmak ihtiyac?nda oldu?unuz durumda mod_cache hem basit hem de karma??k ?nbellekleme yap?land?rmalar?n? hedefler.
?ki durumlu anahtar/de?er payla??ml? nesne ?nbellekleme
Payla??ml? nesne ?nbellek API'si (socache) ve destek modülleri sunucu tarafl? bir anahtar/de?er payla??ml? nesne ?nbelleklemesi sa?lar. Bu modüller SSL oturumlar? ve kimlik do?rulama bilgileri gibi dü?ük seviyeli verileri ?nbelleklemek i?in tasarlanm??t?r. Destek modülleri verinin sunucu taraf? bir payla??ml? bellekte veya veri merkezi taraf? memcache veya distcache gibi bir ?nbellekte saklanmas?n? mümkün k?lar.
Uzmanla?m?? dosya ?nbellekleme
mod_file_cache dosyalar?n sunucunun ba?lat?lmas? s?ras?nda belle?e yüklenmesi ile ilgilenir. B?ylece dosyalara eri?im zaman?n? k?saltabilir, s?k?a eri?ilen dosyalar?n dosya tan?t?c?lar?n? kaydedebilir, her istekte diske gitme ihtiyac?n? ortadan kald?r?r.

Bu belgeden azami yarar? sa?layabilmek i?in temel bir HTTP bilginizin olmas? ve URL’lerin Dosya Sistemine E?lenmesi ile ??erik Uzla??m? belgelerini okumu? olman?z gerekir.

top

ü? durumlu RFC2616 HTTP ?nbelleklemesi

HTTP protokolü RFC2616'n?n 13. b?lümünde a??klanan sat?ri?i ?nbellekleme mekanizmas? i?in yerle?ik bir destek i?erir ve bunun getirilerinden yararlanmak i?in mod_cache modülü kullan?labilir.

??eri?in taze olmad??? durumda i?eri?in kaybolmas?na sebep olan basit iki durumlu anahtar/de?er ?nbelleklemesinin tersine, HTTP ?nbelle?i eskimi? i?eri?i tutan ve bu eski i?eri?in de?i?ip de?i?medi?ini ?zgün sunucuya soran ve duruma g?re onu tekrar taze duruma getiren bir mekanizma i?erir.

HTTP ?nbelle?inde bulunan bir girdi ?u ü? durumdan birinde olabilir:

Taze
??erik yeteri kadar yeni (tazelik ?mründen daha gen?) ise taze say?l?r. Bir HTTP ?nbelle?i b?yle bir i?eri?i ?zgün sunucuya bir?ey sormadan sunabilir.
Bayat

??erik ?ok eski (tazelik ?mründen daha ya?l?) ise bayat say?l?r. Bir HTTP ?nbelle?i b?yle bir i?eri?i istemciye sunmadan ?nce ?zgün sunucuya ba?lan?p bayat i?eri?in hala yeterince taze olup olmad???na bakmal?d?r. ?zgün sunucu, i?erik ge?ersizse yenisini g?nderecektir, aksi takdirde, (ideal olan? budur) i?eri?in hala ge?erli oldu?unu belirten bir kod ile yan?t verecektir. ??erik tekrar taze hale gelince süre? kald??? yerden devam eder.

HTTP protokolü belli ko?ullar alt?nda ?nbelle?in bayat i?eri?i sunmas?na izin vermez. ?rne?in, bir i?eri?i ?zgün sunucuda tazeleme ?abas?n?n bir 5xx hatas?yla ba?ar?s?z olmas? veya ba?ka bir tazeleme iste?inin henüz sonu?lanmam?? olmas? bu ?e?it ko?ullardand?r. Bu durumlarda yan?ta bir Warning ba?l??? eklenir.

Yok
?nbellekte yer kalmazsa yer a?mak i?in i?eri?in silinmesi se?enek dahilindedir. ??erik taze olsun olmas?n her zaman silinebilir. ?nlem olarak htcacheclean elle veya bir artalan süreci olarak ?al??t?r?labilir. B?ylece ?nbelle?in boyutunun belirtilen boyutta veya belirtilen dosya dü?ümü say?s?nda kalmas? sa?lanabilir. Ara? i?eri?i silerken bayat i?eri?e ?ncelik verir.

HTTP ?nbelleklemesinin ?al??mas? ile ilgili bütün ayr?nt?lar RFC2616'n?n 13. b?lümünde bulunabilir.

Sunucu ile etkile?im

mod_cache modülü CacheQuickHandler y?nergesinin de?erine ba?l? olarak iki olas? yerde sunucuya ba?lan?r:

?abuk eylem a?amas?

Bu a?ama ?ok erken ger?ekle?en bir a?ama olup iste?in i?lenmesi s?ras?nda iste?in ??zümlenmesinin hemen sonras?d?r. ??erik ?nbellekte mevcutsa hemen sunulur ve geri kalan istek i?leme i?lemi iptal edilir.

Bu senaryoda ?nbellek sunucunun ?nüne vidalanm?? gibi davran?r.

Sunucuda ger?ekle?ecek bir dizi i?lemin büyük ?o?unlu?unun yap?lmadan ge?ilmesi nedeniyle bu en yüksek ba?ar?ml? kiptir. Bu kip ayr?ca, sunucu i?lemlerinin kimlik do?rulama ve yetkilendirme a?amalar?n?n da yap?lmadan ge?ilmesini sa?lar. Bu bak?mdan bu kip se?ilirken bu durum dikkate al?nmal?d?r.

"Authorization" ba?l??? i?eren istekler (?rne?in, HTTP Temel Kimlik Kan?tlamas? gibi) mod_cache bu kipte ?al???rken ?nbelle?e al?nmad?klar? gibi ?nbellekten bir i?leme de sokulmazlar.

Normal eylem a?amas?

Bu a?ama ge? bir a?ama olup, iste?in tamamen i?lenmesinin sonras?d?r.

Bu senaryoda ?nbellek sunucunun arkas?na vidalanm?? gibi davran?r.

Bu kip en esne?idir. ?nbelle?in, süzme zincirinin hassas olarak denetlenen bir noktas?nda olu?mas? sa?lanabilir ve ?nbelleklenen i?erik istemciye g?nderilmeden ?nce süzülüp ki?iselle?tirilebilir.

URL ?nbellekte yoksa mod_cache modülü yan?t? ?nbelle?e kaydetme a?amas?nda süzge? y???t?na bir süzge? ekler ve geri ?ekilerek normal istek i?lemlerinin devam etmesine izin verir. ??eri?in ?nbelleklenebilir oldu?u saptan?rsa i?erik gelecekte sunulmak üzere ?nbelle?e kaydedilir, aksi takdirde i?erik yok say?l?r.

?nbellekteki i?erik bayatsa, mod_cache modülü iste?i bir ko?ullu istek haline getirir. ?zgün sunucu normal bir yan?t verirse bu yan?t mevcut i?eri?in yerine ?nbelleklenir. ?zgün sunucu bir 304 Not Modified yan?t? verirse i?erik tekrar taze olarak imlenir ve ?nbellekteki i?erik süzge? taraf?ndan kaydedilmeden sunulur.

?nbelle?in H?zland?r?lmas?

Bir sanal konak bir?ok farkl? sunucu takma ad?ndan biri olarak bilindi?i takdirde UseCanonicalName y?nergesine On de?eri atanm??sa ?nbellekten sunulan sayfa say?s?nda büyük bir art?? oldu?u g?rülür. Bunun sebebi i?eri?i sunan sanal kona??n isminin ?nbellek anahtar?n?n i?inde kullan?lmas?d?r. Y?nergeye On de?erini atamak suretiyle ?ok isimli ve rumuzlu sanal konaklar i?in farkl? ?nbellek girdileri olu?turulmaz, bunun yerine her me?ru sanal konak i?in ayr? bir ?nbellek tutulur.

Tazelik ?mrü

?nbelleklenmek üzere tasarlanm?? iyi bi?imli bir i?erik tazelik ?mrünü Cache-Control ba?l???n?n max-age veya s-maxage alanlar?yla ya da bir Expires ba?l???n? i?ererek bildirmelidir.

Ayn? zamanda, ?zgün sunucunun tan?mlad??? tazelik ?mrü, bir istemci taraf?ndan istekte bir Cache-Control ba?l??? kullan?larak ge?ersiz k?l?nmak istenebilir. Bu durumda hangi tazelik ?mrü daha k?saysa o ge?erli olur.

Tazelik ?mrü istekte veya yan?tta mevcut de?ilse ?ntan?ml? bir tazelik ?mrü kullan?l?r. ?ntan?ml? tazelik ?mrü ?nbellekli i?erik i?in bir saat olmakla birlikte CacheDefaultExpire y?nergesi kullan?larak kolayca de?i?tirilebilir.

Bir yan?t Expires ba?l???n? de?il de Last-Modified ba?l???n? i?eriyorsa mod_cache tazelik ?mrünü CacheLastModifiedFactor y?nergesine bakarak saptar.

Yerel i?erik i?in, ya da kendi Expires ba?l???n? tan?mlamayan uzak i?erik i?in tazelik ?mrünü max-age ve Expires ekleyerek hassas olarak ayarlamak i?in mod_expires kullan?labilir.

Tazelik ?mrünün üst s?n?r? CacheMaxExpire y?nergesi ile belirlenebilir.

?artl? ?stekler i?in ?zlü K?lavuz

?nbellekteki i?eri?in zaman a??m?na u?ray?p bayat hale gelmesi, httpd’nin ?zgün iste?i aktarmak yerine iste?i de?i?ikli?e u?ratarak ?artl? bir istek yapmas? sonucunu do?urur.

?zgün ?nbellekli yan?tta bir ETag ba?l??? mevcutsa, mod_cache modülü ?zgün sunucuya yap?lan iste?e bir If-None-Match ba?l??? ekler. ?zgün ?nbellekli yan?tta bir Last-Modified ba?l??? mevcutsa, mod_cache modülü ?zgün sunucuya yap?lan iste?e bir If-Modified-Since ba?l??? ekler. Bunlardan birinin varl??? iste?i ko?ullu yapar.

Bir ko?ullu istek ?zgün sunucu taraf?ndan al?nd???nda, ?zgün sunucu ETag veya Last-Modified ba?l???n?n iste?e uygun olarak de?i?ip de?i?medi?ine bakmal?d?r. De?i?memi?se, ?zgün sunucu k?sa ve ?z bir "304 Not Modified" yan?t? ile yan?t vermelidir. Bunun ?nbellekteki anlam? ?udur: Eskimi? i?erik hala tazedir ve i?erik yeni tazelik ?mrüne ula??ncaya kadar sonraki isteklerde kullan?lmal?d?r.

??erik de?i?mi?se, bir ?artl? istek yap?lmam?? gibi i?eri?in kendisi sunulur.

?artl? istekler ?ifte yarar sa?lar. Birinci olarak, b?yle bir istek ?zgün sunucuya yap?l?yorsa ve iki i?erik de ayn?ysa bunu saptamak kolay olur ve ?zkayna??n tamam?n? aktarma külfetinden kurtulunur.

?kinci olarak, iyi tasarlanm?? bir ?zgün sunucu, ko?ullu istekler tam bir yan?t üretmekten ?nemli ?l?üde ucuz olacak ?ekilde tasarlanm?? olacakt?r. Dura?an dosyalar i?in bu genellikle stat() veya benzeri bir sistem ?a?r?s?yla dosya boyutlar? ve de?i?iklik zaman?na bakmak ?eklinde ger?ekle?ir. B?ylelikle, yerel i?eri?i bir de?i?iklik olmad??? takdirde ?nbellekten sunmak daha h?zl? olacakt?r.

?zgün sunucular ko?ullu istekleri desteklemek i?in her türlü ?abay? g?stermelidir. Ancak, ko?ullu istekler desteklenmiyorsa, ?zgün sunucu istek ko?ullu de?ilmi? gibi yan?t vermeli, ?nbellek ise, i?erik de?i?mi? ve yani i?erik ?nbelle?e kaydedilmi? gibi yan?t vermelidir. Bu durumda, ?nbellek basit bir iki durumlu (i?erik ya tazedir ya da silinmi?) ?nbellek gibi davranacakt?r.

Neler ?nbelleklenebilir?

HTTP ?nbelle?in taraf?ndan ?nbelleklenebilecek i?erik RFC2616 Section 13.4 Response Cacheability belgesinde tan?mlanm?? olup, bunlar ??yle ?zetlenebilir:

  1. ?nbellekleme bu URL ile etkin k?l?nabilmelidir. CacheEnable ve CacheDisable y?nergelerine bak?n?z.
  2. Yan?t?n HTTP durum kodu 200, 203, 300, 301 veya 410 olmal?d?r.
  3. Yan?t?n HTTP durum kodu 200, 203, 300, 301 veya 410 de?ilse yan?t?n ayr?ca, "Expires" veya "Cache-Control" ba?l??? da i?ermesi gerekir.
  4. ?stek bir HTTP GET iste?i olmal?d?r.
  5. E?er yan?t bir "Authorization:" ba?l??? i?eriyorsa ayr?ca "Cache-Control:" ba?l???nda da "s-maxage", "must-revalidate" veya "public" de?erlerinden birini i?ermelidir, aksi takdirde ?nbelleklenmez.
  6. E?er URL (GET y?ntemi kullanan bir HTML formunun yapt??? gibi) bir sorgu dizgesi i?eriyorsa yan?t, RFC2616’n?n 13.9. b?lümünde a??kland??? gibi bir "Expires:" ba?l??? i?ermedik?e veya "Cache-Control:" ba?l???n?n max-age veya max-age y?nergesini i?ermedik?e yan?t i?eri?i ?nbelle?e al?nmayacakt?r.
  7. CacheIgnoreNoLastMod y?nergesinin kullan?m?n? gerektiren bir durum olmad?k?a 200 durum koduna sahip bir yan?t?n "Etag", "Last-Modified" ve "Expires" ba?l?klar?ndan birini veya "Cache-Control:" ba?l???n?n "max-age" veya "s-maxage" y?nergelerinden birini (en az?ndan) i?ermesi gerekir.
  8. CacheStorePrivate y?nergesinin kullan?m?n? gerektiren bir durum olmad?k?a yan?t "private" de?erli bir "Cache-Control:" ba?l??? i?erdi?i takdirde yan?t?n i?eri?i ?nbelle?e al?nmayacakt?r.
  9. Benzer ?ekilde, CacheStoreNoStore y?nergesi kullan?lmam??sa yan?t "no-store" de?erli bir "Cache-Control:" ba?l??? i?eriyorsa yan?t i?eri?i ?nbelle?e al?nmayacakt?r.
  10. Her?eyle e?le?en "*" de?erli bir "Vary:" ba?l??? i?eren bir yan?t?n i?eri?i ?nbelle?e al?nmaz.

Neler ?nbelleklenmemeli?

??erik zamana ba??ml?ysa ya da istek k?smen bile olsa HTTP uzla??m?yla ba?da?m?yorsa ?nbelle?e al?nmamal?d?r. Bu i?erik ?nbelleklenemeyece?ini Cache-Control ba?l???n? kullanarak sunucuya bildirmelidir.

??erik s?k?a de?i?iyorsa, tazelik ?mrü dakikalar veya saniyelerle ifade ediliyorsa, i?erik yine de ?nbelleklenebilir. Ancak, tam yan?tlar?n düzenli olarak üretilmemesinin temini i?in ?zgün sunucunun ko?ullu istekleri do?ru olarak desteklemesi sa?lanmal?d?r.

?stemcinin sa?lad??? istek ba?l?klar?na dayanarak de?i?en i?erik, Vary yan?t ba?l???n?n ak?ll?ca kullan?m?yla ?nbelleklenebilir.

De?i?ken/Uzla??ml? ??erik

?zgün sunucu, istekteki ba?l?k de?erlerine dayanarak farkl? i?eriklerle yan?t vermeye ayarland??? takdirde, ?rne?in ayn? URL'de farkl? dillerde i?erik sunmak gibi, HTTP'nin ?nbellekleme mekanizmas? ayn? URL'de ayn? sayfan?n de?i?ik sürümlerini ?nbelleklemeyi mümkün k?lar.

Bu ?zgün sunucu taraf?ndan bir Vary ba?l??? eklenerek yap?l?r. Bir sayfan?n farkl? sürümleri aras?ndaki farklar? saptarken ?nbellek taraf?ndan hangi ba?l?klar?n hesaba kat?laca??n? Vary ba?l??? belirler.

?rne?in, bir yan?t ??yle bir ba?l?k ile al?nm??sa,

Vary: negotiate,accept-language,accept-charset

mod_cache sadece accept-language ve accept-charset ba?l?klar? ?zgün istekle e?le?en ?nbellekli i?eri?i sunacakt?r.

??eri?in farkl? sürümleri yan yana ?nbelleklenebilir. mod_cache modülü Vary ba?l???n? kullanarak ba?l?kta listelenmi? istek ba?l?klar?n?n uygun de?erlerini saptar ve istemciye hangi sürümle yan?t verilece?ine karar verir.

top

?nbellek Ayarlama ?rnekleri

Disk üzerinde ?nbellekleme

mod_cache modülü ?nbelle?i y?netmek i?in ?e?itli depolama ortamlar?na ?zgü ger?eklenimleri kullan?r. Diske ?nbellekleme deste?ini mod_cache_disk sa?lar.

Tipik olarak modül ??yle yap?land?r?l?r:

CacheRoot   "/var/cache/apache/"
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 1

En ?nemlisi ?nbelleklenen dosyalar?n yerel olarak saklanmas? olup i?letim sisteminin sa?lad??? belleki?i ?nbelleklemeden de ayr?ca faydalan?lm?? olur. Bu bak?mdan, dosyalar disk üzerinde saklansa bile s?k?a eri?ilen dosyalar i?letim sistemi sayesinde asl?nda bellekten sunulmu? olacaklard?r.

?nbellekte Saklaman?n Anlam?

mod_cache_disk ??eleri ?nbellekte saklamak i?in istek yap?lan URL’nin 22 karakterlik ?zetini olu?turur. Bu ?zet, ?ok say?da URL’nin ayn? ?zeti olu?turmamas? i?in konak ismi, protokol, port ve varsa CGI argümanlar?ndan ba?ka Vary ba?l???nda tan?ml? elemanlardan olu?ur.

?zeti olu?turan karakterler 64 karakterlik bir karakter kümesinden se?ildi?inden olu?turulmas? olas? farkl? ?zet say?s? 64^22’dir. ?rne?in, bir URL’nin xyTGxSMO2b68mBCykqkp1w gibi bir ?zeti olabilir. Bu ?zet, bu URL ile eri?ilen dosyalar ?nbellek i?inde saklan?rken dosya ismi ?neki olarak kullan?l?r. Ancak bununla yetinilmez ve i?erik CacheDirLevels ve CacheDirLength y?nergelerinin de?erlerine g?re ?nce dizinlere ayr?l?r.

CacheDirLevels y?nergesi ka? alt seviye dizin olaca??n? ve CacheDirLength her dizinde ka? karakter olaca??n? belirler. ?rne?in, yukar?daki ?zete sahip bir dosyan?n isminin ba??na yukar?daki yap?land?rma ?rne?ine uygun olarak /var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w gibi bir ?nek getirilebilirdi.

Bu tekni?in as?l amac? belli bir dizin i?inde bulunabilecek dosyalar?n ve alt dizinlerin say?s?n? dü?ük tutmakt?r. Bu say?n?n büyük olmas? ?o?u i?letim sisteminde ba?ar?m?n dü?mesine sebep olur. CacheDirLength y?nergesi "1" de?eriyle kullan?ld???nda her dizin alt?nda en fazla 64 alt dizin veya dosya a??labilir. "2" de?eriyle kullan?ld???nda ise bu say? 64^2’ye yükselir ve b?yle artarak gider. ?yi bir sebebiniz olmad?k?a CacheDirLength i?in de?er olarak "1" belirtmenizi ?neririz.

CacheDirLevels y?nergesine atanacak de?er ?nbellekte saklamay? dü?ündü?ünüz olas? dosya say?s? ile ilgilidir. Yukar?daki ?rnekte oldu?u gibi "2" de?erini belirtirseniz, toplamda en fazla 4096 dizin olu?turulabilir. 1 milyon dosyan?n ?nbelleklendi?i bir durumda bu, her dizinde yakla??k olarak 245 ?nbelleklenmi? URL demektir.

Her URL i?in ?nbellekte en az iki dosya saklan?r. Biri genellikle URL hakk?ndaki temel verilerden olu?an ".header" dosyas?d?r, di?eri ise sunulacak i?eri?in bire bir kopyas? olan ".data" dosyas?d?r.

"Vary" ba?l??? üzerinden i?eri?in uzla??ld??? durumda URL i?in bir ".vary" dizini olu?turulur. Bu dizin her biri farkl? bir uzla??ma ait ?ok say?da ".data" dosyas? i?erebilir.

Disk ?nbelle?inin Bak?m?

mod_cache_disk zaman a??m?na u?rayan ?nbellekli i?eri?i silse de ?nbelle?in toplam boyu ve ne kadar bo? bellek kald??? hakk?nda bilgi vermez.

Bunun yerine httpd ?nbellek i?eri?ini düzenli aral?klarla temizleyebilmeniz i?in htcacheclean ad?nda bir ara? i?erir. ?nbellek i?in azami ne kadar yer kullan?laca??n?n ve bunun üzerinde htcacheclean’i hangi s?kl?kta ?al??t?r?laca??n?n tespiti biraz karma??k bir i?lem olup uygun de?erler genellikle deneme yan?lma yoluyla bulunur.

htcacheclean iki i?lem kipine sahiptir. Kal?c? bir artalan süreci olarak ?al??abilece?i gibi cron üzerinden belli aral?klarla da ?al??t?r?labilir. ?ok büyük (onlarca GB) ?nbelleklerde htcacheclean’in i?ini bitirmesi 1 saatten fazla sürebilece?inden, cron ile ?al??t?rma durumunda ayn? anda birden fazla kopyan?n ?al???yor durumda olmamas? i?in htcacheclean’in ?al??t?r?lma aral???n? iyi belirlemek gerekir.

Ayr?ca, htcacheclean i?in uygun bir "nice" seviyesi se?ilmesi ?nerilr. B?ylece, sunucu ?al???rken arac?n ?l?üsüz disk g/? yapmas?na sebebiyet verilmemi? olur.


?ekil 1: ?nbelle?in büyümesi ve düzenli aral?klarla temizlenmesi.

mod_cache_disk ne kadar bellek kullan?ld??? hakk?nda bilgi vermedi?inden, htcacheclean'in bir temizli?in ard?ndan yeterli bir büyüme alan? kalacak ?ekilde yap?land?r?lmas? temin edilmelidir.

memcached ile ?nbellekleme

mod_cache_socache modülünü kullanarak, mod_cache ?e?itli ger?eklenimlerden (di?er ad?yla: "sa?lay?c?lar"dan) gelen veriyi ?nbellekleyebilir. mod_socache_memcache modülü kullan?larak, ?rne?in, artalan saklama mekanizmas? olarak memcached kullan?ld??? s?ylenebilir.

Genelde modül ??yle yap?land?r?l?r:

CacheEnable socache /
CacheSocache memcache:memcd.example.com:11211

?lave memcached sunucular CacheSocache memcache: sat?r?n?n ard?na virgüllerle ayr?larak eklenebilir:

CacheEnable socache /
CacheSocache memcache:mem1.example.com:11211,mem2.example.com:11212

Bu bi?im di?er mod_cache_socache sa?lay?c?lar? i?in de kullan?labilir:

CacheEnable socache /
CacheSocache shmcb:/path/to/datafile(512000)
CacheEnable socache /
CacheSocache dbm:/path/to/datafile
top

Genel ?ki durumlu Anahtar/De?er Payla??ml? Nesne ?nbellekleme

Apache HTTP sunucusu, SSL oturumlar?, kimlik do?rulama bilgileri gibi ?nbelleklenebilen ?zel bilgiler i?in socache arayüzü i?inde dü?ük seviyeli bir payla??ml? nesne ?nbelle?ine sahiptir.

Her ger?eklenime uygun ek modüller de sa?lanm??t?r:

mod_socache_dbm
DBM tabanl? payla??ml? nesne ?nbelleklemesi.
mod_socache_dc
Distcache tabanl? payla??ml? nesne ?nbelleklemesi.
mod_socache_memcache
Memcache tabanl? payla??ml? nesne ?nbelleklemesi.
mod_socache_shmcb
Payla??ml? belle?e dayal? payla??ml? nesne ?nbelleklemesi.

Kimlik Do?rulama Bilgilerinin ?nbelleklenmesi

mod_authn_socache modülü kimlik do?rulama ara?lar?n?n yükünün hafifletilmesini, kimlik do?rulama sonucunun ?nbelleklenmesini sa?lar.

SSL Oturumlar?n?n ?nbelleklenmesi

mod_ssl modülü, oturum ?nbelle?i ve ?nbellek z?mbalamas? sa?lamak i?in socache arayüzünü kullan?r.

top

Uzmanla?m?? Dosya ?nbellekleme

Dosya sisteminin yava? olabildi?i veya dosya tan?t?c?lar?n?n kullan?m?n?n pahal?ya mal oldu?u sistemlerde, sunucunun ba?lat?lmas? s?ras?nda dosyalar?n belle?e yüklenmesi se?ene?i vard?r.

Dosyalar?n a??lmas?n?n yava? oldu?u sistemlerde, dosyalar?n sunucunun ba?lat?lmas? s?ras?nda a??lmas? ve dosya tan?t?c?s?n? ?nbelleklenmesi se?ene?i vard?r. Bu se?eneklerin duruk dosyalara eri?imin yava? oldu?u sistemlere de bir yard?m? olabilir.

Dosya Tan?t?c? ?nbelleklemesi

Bir dosyan?n a??lmas? i?lemi, ?zellikle de a? dosya sistemlerinde bulunan dosyalar i?in ?nemli bir gecikme kayna?? olabilir. ?nbellekte, ?ok sunulan dosyalar?n kendilerinin de?il, a??k dosya tan?t?c?lar?n?n saklanmas? httpd’yi bu tür gecikmelerden koruyabilir. httpd’de tek türde dosya tan?t?c? ?nbelleklemesi yap?labilmektedir.

CacheFile y?nergesi ile

httpd’de mevcut ?nbelleklemenin en temel ?ekli mod_file_cache taraf?ndan sa?lanan dosya tan?t?c? ?nbelleklemesidir. Bu ?nbellek türü dosyalar?n kendilerini de?il a??k dosya tan?t?c?lar?n?n bir listesini saklar. Dosyalar?n bu anlamda ?nbelleklenmesi, CacheFile y?nergesi yap?land?rma dosyas?nda belirtilerek sa?lanabilir.

CacheFile y?nergesi belirtilen dosyan?n httpd ba?lat?ld???nda a??lmas?n? ve dosya i?in yap?lan sonraki her istekte bu dosya tan?t?c?s?n?n kullan?lmas?n? sa?lar.

CacheFile /usr/local/apache2/htdocs/index.html

Büyük miktarda dosyay? bu anlamda ?nbelleklemeyi tasarl?yorsan?z i?letim sisteminizin a??k dosya tan?t?c?lar?n?n say?s? ile ilgili s?n?rlamas?n? uygun bir de?ere ayarlaman?z gerekebilir.

CacheFile y?nergesini kulland???n?z takdirde dosya i?eri?indeki de?i?iklikleri an?nda iste?e yans?tamazs?n?z. httpd dosyay? ilk ba?lat?ld???ndaki haliyle sunar.

E?er httpd ?al???rken dosya silinmi?se httpd ilk ba?lat?ld???ndaki haline ili?kin dosya tan?t?c?y? sa?lamaya ve dolay?s?yla dosya i?eri?ini sunmaya devam edecektir. Yani, dosya silinmi? ve art?k dosya sisteminde g?rünmüyor olsa bile httpd durdurulup dosya tan?t?c?lar? kapanmad?k?a dosyalar?n silinmesiyle a??lan yer serbest kalmayacakt?r.

Sistem Belle?inde ?nbellekleme

??eri?in sistem belle?inden sunulmas? i?erik sunman?n evrensel olarak en h?zl? yoludur. Dosyalar?n bir disk denetleyiciden okunmas? ya da daha k?tüsü uzak bir a?dan okunmas? bellekten okumayla kar??la?t?r?lamayacak ?l?üde yava? i?lemlerdir. Disk denetleyiciler genellikle fiziksel süre?leri denetlerler. A? eri?imi ise band geni?li?i s?n?rlamalar?ndan etkilenir. Halbuki bellek eri?imi sadece nano saniyeler mertebesinde ger?ekle?ir.

Sistem belle?i en pahal? saklama ortam? olmas? sebebiyle en verimli ?ekilde kullan?m? ?nemlidir. Dosyalar? sistem belle?inde saklamakla sistemin kullanabilece?i bellek miktar?n? azaltm?? olursunuz. ??letim sistemi ?nbelleklemesinde g?rece?iniz gibi bu ?yle basit bir konu de?ildir. httpd’nin kendi kulland??? belle?in bir k?sm?n? ?nbellek olarak ay?r?rken ?ok fazla bellek kullanmamak ?nemlidir. Aksi takdirde i?letim sistemi belle?in yetmedi?i noktada belle?i diske takaslayaca??ndan istenen ba?ar?m art??? sa?lanamayacakt?r.

??letim Sistemi ?nbelleklemesi

Günümüz i?tetim sistemlerinin hemen hemen tamam?nda bellek i?i dosya/veri saklama i?lemlerini ?ekirdek y?netir. Bu gü?lü bir ?zelliktir ve i?letim sistemlerinin büyük ?o?unlu?u bunu b?yle yapar. ?rne?in, Linux’ta bir dosyan?n ilk defa okundu?unda ve ikinci kez okundu?unda i?lemcinin ne kadar me?gul edildi?ine bakal?m:

[email protected]:~$ time cat testfile > /dev/null
real 0m0.065s
user 0m0.000s
sys 0m0.001s
[email protected]:~$ time cat testfile > /dev/null
real 0m0.003s
user 0m0.003s
sys 0m0.000s

Kü?ük bir dosya i?in bile okuma süresi bak?m?ndan büyük fark ortaya ??kmaktad?r. Bunun sebebi ?ekirde?in dosya i?eri?ini bellek daha güncel ama?lar i?in laz?m olana dek bellek i?inde saklamas?d?r.

Sisteminizde yeterince yedek bellek oldu?undan eminseniz, bu ?nbellekte daha fazla dosya saklanaca??ndan emin olabilirsiniz. Bundan, ?nbelle?in sistem belle?inde verimli bi?imde tutulmas? i?in httpd’de ek bir yap?land?rmaya gidilmesinin gerekmedi?i sonucu ??kar?labilir.

Bundan ba?ka, i?letim sistemi dosyalar?n de?i?ti?i ve silindi?i zamanlar? bildi?inden bu tür dosyalar?n i?erikleri gerekti?inde ?nbellekten kendili?inden silinmi? olur. Bellek i?inde dosya saklarken dosyalar?n de?i?tirilme zamanlar?n? bilme olana?? olmad???ndan bu durum httpd’ye büyük yarar sa?lar.

??letim sisteminin dosyalar?n ?nbelleklenmesi i?in sa?lad??? bunca yarara ve ba?ar?m art???na kar??n bellek i?inde dosya ?nbelleklemenin httpd taraf?ndan yerine getirilmesinin daha iyi olaca?? baz? durumlar vard?r.

MMapFile y?nergesi ile

mod_file_cache modülü, bir dura?an dosyan?n i?eri?ini sunucunun ba?lat?lmas? s?ras?nda (mmap sistem ?a?r?s?yla) belle?e e?lenmesini mümkün k?lmak i?in MMapFile y?nergesini sa?lar. httpd bu dosyaya gelecek sonraki istekler i?in dosyan?n belleki?i i?eri?ini kullanacakt?r.

MMapFile /usr/local/apache2/htdocs/index.html

CacheFile y?nergesinde oldu?u gibi bu dosyalarda httpd ba?lat?ld?ktan sonra yap?lacak bir de?i?iklikten httpd’nin haberi olmayacakt?r.

MMapFile y?nergesi ay?rd??? belle?in toplam miktar? ile ilgilenmez, dolay?s?yla y?nergenin a??r? kullan?m?ndan ka??nmal?s?n?z. httpd’nin ?ocuk süre?lerinin her biri bu belle?in kendilerine ait birer kopyas?n? yapaca??ndan belle?e e?lenen dosyalar?n ?ok yer kaplamamas? büyük ?nem ta??maktad?r; aksi takdirde i?letim sistemi belle?i diske takaslayaca??ndan beklenen fayda sa?lanamayacakt?r.

top

Güvenlik Kayg?lar?

Eri?im Denetimi ve Yetkilendirme

CacheQuickHandler y?nergesine On de?erinin atand??? ?ntan?ml? durumda mod_cache kullan?m?, daha ?ok sunucunun ?nüne vidalanm?? ?nbelleklemeli bir kar?? vekile sahip olmak gibidir. ?zgün sunucunun bir harici ?nbellekmi? gibi sorgulanmas?n? gerektirmeyen tüm istekler ?nbellekleme modülü taraf?ndan kar??lanacakt?r. Bu durum httpd'nin güvenlik modelini büyük ?l?üde de?i?tirir.

Olas? .htaccess dosyalar?n?n dosya sisteminin tamam?nda taranmas? ?ok pahal? bir i?lem oldu?undan mod_cache, (i?lemi h?zland?rmak i?in) ?nbelle?e alman?n temel amac?n? k?smen g?zard? ederek, ?nbellekteki i?eri?in sunumu i?in gerekli yetkilendirmenin olup olmad??? konusunda bir karar üretmez. Ba?ka bir deyi?le, e?er mod_cache bir k?s?m i?eri?i ?nbelle?e alm??sa i?erik zaman a??m?na u?ramad??? sürece bu i?erik ?nbellekten sunulacakt?r.

?rne?in, yap?land?rman?z bir ?zkayna?a IP adresine g?re eri?ime izin veriyorsa bu i?eri?in ?nbelle?e al?nmayaca??ndan emin olmal?s?n?z. Bunu CacheDisable y?nergesini veya mod_expires modülünü kullanarak yapabilirsiniz. Bunu yapmaz, olay? kendi haline b?rak?rsan?z mod_cache bir kar?? vekil gibi ?al??arak sunulan her i?eri?i ?nbelle?e alacak ve hangi IP adresinden gelirse gelsin her istemciye bunu sunacakt?r.

CacheQuickHandler y?nergesine Off atand??? takdirde, istek i?leme a?amalar?n?n tamam? yerine getirilir ve güvenlik modeli de?i?meden kal?r.

Yerel ?stismarc?lar

Son kullan?c?lar??n isteklerine ?nbellekten hizmet sunuldu?undan ?nbelle?in kendisi i?erikle etkile?ime ge?mek isteyenlerin veya i?eri?i tahrif etmek isteyenlerin hedefi haline gelebilir. httpd’yi ?al??t?ran kullan?c? taraf?ndan her zaman ?nbelle?e yaz?labilece?ini ak?ldan ??karmamak ?nemlidir. Bu durumda al???lm???n tersine tüm i?eri?in Apache kullan?c?s? taraf?ndan yaz?lamamas?n?n sa?lanmas? ?nerilir.

E?er Apache kullan?c?s?, ?rne?in bir CGI sürecindeki a??k nedeniyle tehlikeye at?l?rsa, ?nbellek hedef al?nabilir. mod_cache_disk kullan?l?rken ?nbellekteki bir ??eyi de?i?tirmek veya ?nbelle?e yeni bir ??e eklemek g?rece daha kolayd?r.

Bu risk, Apache kullan?c?s?n? kullanan di?er sald?r? türleriyle kar??la?t?r?ld???nda daha yüksektir. mod_cache_disk kullan?yorsan?z ?unlar? akl?n?zdan ??karmay?n: (1) httpd güvenlik güncellemelerini takip edin ve sunucunuzu buna g?re güncelleyin. (2) Mümkünse suEXEC kullanarak CGI süre?lerini Apache kullan?c?s? olmayan bir kullan?c?n?n aidiyetinde ?al??t?r?n.

?nbellek Zehirlenmeleri

httpd bir ?nbellekli vekil sunucu olarak ?al??t???nda ?nbellek zehirlenmesi ad? verilen sorunla kar??la??lma olas?l??? vard?r. ?nbellek zehirlenmesi, vekil sunucunun ?zgün sunucudan yanl?? (ve genellikle istenmeyen) i?erik almas?na sebep olan bir sald?r? türünü betimlemek i?in yayg?n olarak kullan?lan bir terimdir.

?rne?in httpd’nin ?al??t??? sistemin kulland??? DNS sunucular? DNS ?nbellek zehirlenmesinden etkilenebilecek durumdaysa, bir sald?rgan httpd’nin istekleri almak i?in ba?vuraca?? kaynak sunucunun yerini de?i?tirebilir. Di?er bir ?rnek, HTTP istek ka?ak??l??? ad? verilen bir sald?r? türüdür.

Bu belge HTTP istek ka?ak??l???n? derinli?ine incelenmesi i?in uygun yer de?ildir (b?yle kaynaklara arama motorunuzla eri?ebilirsiniz). Bununla birlikte, vekil taraf?ndan kaynak sunucudan al?nan i?eri?i tamamen denetim alt?na almak amac?yla kaynak sunucudaki bir a???? istismar etmeye y?nelik bir dizi istek yap?labilece?inin olas?l?k dahilinde oldu?unu bilmenizde yarar vard?r.

Hizmet Reddi / ?nbelle?in Engellenmesi

Vary mekanizmas? ayn? URL'nin ?ok say?da sürümünün yan yana ?nbelleklenmesini mümkün k?lar. ?stemci taraf?ndan sa?lanan ba?l?k de?erlerine ba?l? olarak, ?nbellek istemciye g?nderilecek do?ru yan?t? bulacakt?r. Normal kullan?mda olas? de?erlerin ?ok geni? oldu?unun bilindi?i durumda bir ba?l??? (?rn, User-Agent) de?i?ikli?e u?ratma ?abas? bu mekanizmay? bir sorun haline getirebilir. Sitenin tan?n?rl???na ba?l? olarak ayn? URL'nin binlerce hatta milyonlarca ?nbellek girdisi olu?abilir ve bunlar ?nbellekteki di?er girdilerin yerini alabilir.

Di?er yandan, belli bir ?zkayna??n URL'sinin her istekte de?i?tirilmesi ihtiyac? ortaya ??kabilir. Bu normalde URL dizgesine bir "cachebuster" dizgesi eklenerek yap?l?r. Bu i?erik sunucu taraf?ndan anlaml? bir tazelik ?mrüyle ?nbelleklenebilir olarak imlenmi?se bu girdiler k?sa zamanda ?nbellekteki me?ru girdilerin yerini alabilir. mod_cache modülü bunun ?nlenmesi i?in CacheIgnoreURLSessionIdentifiers y?nergesine sahipse de bu y?nerge, yoldaki vekillerin veya taray?c? ?nbelleklerinin ayn? hizmet reddi sald?r?s?na maruz kalmamalar? i?in dikkatle kullan?lmal?d?r.

Mevcut Diller:  en  |  fr  |  tr 

top

Yorum

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
白小姐透特期期