{"id":36528,"date":"2025-12-19T11:40:53","date_gmt":"2025-12-19T08:40:53","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36528"},"modified":"2025-12-19T11:40:53","modified_gmt":"2025-12-19T08:40:53","slug":"apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/","title":{"rendered":"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04)"},"content":{"rendered":"<p><body><\/p>\n<h2>Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04)<\/h2>\n<p>Web sitelerinin performans\u0131, kullan\u0131c\u0131 deneyimi ve arama motoru s\u0131ralamas\u0131 i\u00e7in kritik bir fakt\u00f6rd\u00fcr. Y\u00fcksek trafikli sitelerde veya dinamik i\u00e7erik sunan uygulamalarda, her iste\u011fi s\u0131f\u0131rdan i\u015flemek sunucu kaynaklar\u0131n\u0131 t\u00fcketir ve yan\u0131t s\u00fcrelerini uzat\u0131r. Bu sorunu \u00e7\u00f6zmek i\u00e7in en etkili y\u00f6ntemlerden biri i\u00e7erik \u00f6nbelleklemedir. Apache HTTP Sunucusu, mod\u00fcler yap\u0131s\u0131 sayesinde g\u00fc\u00e7l\u00fc ve esnek \u00f6nbellekleme yetenekleri sunar. Bu makalede, Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde Apache i\u00e7erik \u00f6nbelleklemesinin nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131, farkl\u0131 \u00f6nbellekleme mod\u00fcllerini, yap\u0131land\u0131rma direktiflerini ve en iyi uygulamalar\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h3>1. Giri\u015f: \u00d6nbellekleme Neden \u00d6nemli?<\/h3>\n<p>\u00d6nbellekleme (Caching), s\u0131k\u00e7a eri\u015filen verilerin veya i\u00e7eriklerin daha h\u0131zl\u0131 eri\u015filebilir bir konumda (\u00f6nbellekte) depolanmas\u0131 i\u015flemidir. Bir kullan\u0131c\u0131 bir web sayfas\u0131n\u0131 ziyaret etti\u011finde, sunucu genellikle veritaban\u0131ndan veri \u00e7eker, dinamik i\u00e7erik olu\u015fturur ve bu i\u00e7eri\u011fi istemciye g\u00f6nderir. \u00d6nbellekleme devreye girdi\u011finde, bu i\u015flemden ge\u00e7en nihai i\u00e7erik veya ara sonu\u00e7lar belirli bir s\u00fcre i\u00e7in depolan\u0131r. Sonraki ayn\u0131 istekler geldi\u011finde, sunucu i\u00e7eri\u011fi s\u0131f\u0131rdan olu\u015fturmak yerine \u00f6nbellekten h\u0131zl\u0131ca sunar.<\/p>\n<p>Bu yakla\u015f\u0131m\u0131n temel faydalar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Performans Art\u0131\u015f\u0131:<\/strong> Sayfa y\u00fckleme s\u00fcreleri k\u0131sal\u0131r, kullan\u0131c\u0131 deneyimi iyile\u015fir.<\/li>\n<li><strong>Sunucu Y\u00fck\u00fcn\u00fcn Azalmas\u0131:<\/strong> CPU, bellek ve disk I\/O gibi sunucu kaynaklar\u0131 \u00fczerindeki bask\u0131 azal\u0131r. Bu, ayn\u0131 donan\u0131m \u00fczerinde daha fazla trafi\u011fi y\u00f6netebilme anlam\u0131na gelir.<\/li>\n<li><strong>Bant Geni\u015fli\u011fi Tasarrufu:<\/strong> \u00d6zellikle ters proxy \u00f6nbelleklemesi durumunda, sunucunun internete \u00e7\u0131kan bant geni\u015fli\u011fi kullan\u0131m\u0131 azalabilir.<\/li>\n<li><strong>Daha \u0130yi Kullan\u0131c\u0131 Deneyimi:<\/strong> H\u0131zl\u0131 y\u00fcklenen sayfalar, kullan\u0131c\u0131lar\u0131n sitede daha uzun s\u00fcre kalmas\u0131n\u0131 sa\u011flar ve d\u00f6n\u00fc\u015f\u00fcm oranlar\u0131n\u0131 art\u0131r\u0131r.<\/li>\n<\/ul>\n<p>Apache, bu \u00f6nbellekleme mekanizmas\u0131n\u0131 mod\u00fcler bir yap\u0131yla sunar. Ubuntu 14.04 \u00fczerinde Apache 2.4 versiyonu genellikle varsay\u0131lan olarak gelir ve bu versiyon, \u00f6nceki versiyonlara g\u00f6re daha geli\u015fmi\u015f \u00f6nbellekleme \u00f6zelliklerine sahiptir.<\/p>\n<h3>2. Apache \u00d6nbellekleme Mekanizmalar\u0131 ve Mod\u00fclleri<\/h3>\n<p>Apache, i\u00e7erik \u00f6nbellekleme i\u00e7in bir dizi mod\u00fcl kullan\u0131r. Temel olarak, \u00f6nbellekleme mant\u0131\u011f\u0131n\u0131 sa\u011flayan bir \u00e7ekirdek mod\u00fcl ve bu \u00f6nbelle\u011fin nerede (disk, bellek) depolanaca\u011f\u0131n\u0131 belirleyen depolama mod\u00fclleri bulunur.<\/p>\n<h4>2.1. mod_cache<\/h4>\n<p><code>mod_cache<\/code>, Apache&#8217;nin temel \u00f6nbellekleme mod\u00fcl\u00fcd\u00fcr. \u00d6nbellekleme politikalar\u0131n\u0131 y\u00f6netir, istekleri \u00f6nbelle\u011fe y\u00f6nlendirir ve \u00f6nbellekten yan\u0131tlar\u0131 sunar. Ancak, i\u00e7eri\u011fi kendisi depolamaz; bunun i\u00e7in alt mod\u00fcllere ihtiya\u00e7 duyar.<\/p>\n<h4>2.2. mod_disk_cache<\/h4>\n<p><code>mod_disk_cache<\/code>, \u00f6nbelle\u011fe al\u0131nan i\u00e7eri\u011fi sunucunun dosya sisteminde (disk \u00fczerinde) depolayan mod\u00fcld\u00fcr. B\u00fcy\u00fck miktarda veri \u00f6nbelleklemek ve Apache yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda \u00f6nbelle\u011fin kal\u0131c\u0131 olmas\u0131n\u0131 sa\u011flamak i\u00e7in idealdir. Disk I\/O performans\u0131, bu mod\u00fcl\u00fcn etkinli\u011fi i\u00e7in \u00f6nemli bir fakt\u00f6rd\u00fcr.<\/p>\n<h4>2.3. mod_mem_cache<\/h4>\n<p><code>mod_mem_cache<\/code>, \u00f6nbelle\u011fe al\u0131nan i\u00e7eri\u011fi sunucunun belle\u011finde (RAM) depolayan mod\u00fcld\u00fcr. Disk tabanl\u0131 \u00f6nbelle\u011fe g\u00f6re \u00e7ok daha h\u0131zl\u0131 eri\u015fim sa\u011flar ancak bellek s\u0131n\u0131rl\u0131d\u0131r ve Apache yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda \u00f6nbellek i\u00e7eri\u011fi kaybolur. Genellikle k\u00fc\u00e7\u00fck, s\u0131k eri\u015filen ve \u00e7ok h\u0131zl\u0131 sunulmas\u0131 gereken i\u00e7erikler i\u00e7in kullan\u0131l\u0131r. Bu mod\u00fcl genellikle <code>mod_socache_shmcb<\/code> ile birlikte \u00e7al\u0131\u015f\u0131r.<\/p>\n<h4>2.4. mod_expires ve mod_headers<\/h4>\n<p>Bu mod\u00fcller do\u011frudan \u00f6nbellekleme depolamas\u0131 yapmazlar, ancak istemci taraf\u0131 (taray\u0131c\u0131) \u00f6nbelleklemesini ve proxy sunucular\u0131n \u00f6nbelleklemesini kontrol eden HTTP \u00fcstbilgilerini (<code>Cache-Control<\/code>, <code>Expires<\/code>) y\u00f6netmek i\u00e7in kritik \u00f6neme sahiptirler. Sunucu taraf\u0131 \u00f6nbelleklemenin yan\u0131 s\u0131ra, istemci taraf\u0131 \u00f6nbellekleme de performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/p>\n<h3>3. \u00d6n Haz\u0131rl\u0131klar<\/h3>\n<p>\u00d6nbellekleme yap\u0131land\u0131rmas\u0131na ba\u015flamadan \u00f6nce, Ubuntu 14.04 sisteminizin g\u00fcncel oldu\u011fundan ve Apache&#8217;nin kurulu oldu\u011fundan emin olmal\u0131s\u0131n\u0131z.<\/p>\n<h4>3.1. Sistem G\u00fcncelleme<\/h4>\n<p>Terminali a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak sisteminizi g\u00fcncelleyin:<\/p>\n<pre><code>sudo apt-get update\nsudo apt-get upgrade<\/code><\/pre>\n<h4>3.2. Apache Kurulumu ve Kontrol\u00fc<\/h4>\n<p>E\u011fer Apache hen\u00fcz kurulu de\u011filse, a\u015fa\u011f\u0131daki komutla kurabilirsiniz:<\/p>\n<pre><code>sudo apt-get install apache2<\/code><\/pre>\n<p>Apache servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in:<\/p>\n<pre><code>sudo service apache2 status<\/code><\/pre>\n<p>Taray\u0131c\u0131n\u0131zda <code>http:\/\/localhost<\/code> adresine giderek Apache varsay\u0131lan sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h4>3.3. Gerekli Mod\u00fclleri Etkinle\u015ftirme<\/h4>\n<p>Apache \u00f6nbellekleme i\u00e7in gerekli mod\u00fclleri etkinle\u015ftirmemiz gerekiyor. Ubuntu&#8217;da bu i\u015flem <code>a2enmod<\/code> komutu ile yap\u0131l\u0131r. Daha sonra Apache&#8217;yi yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/p>\n<pre><code>sudo a2enmod cache\nsudo a2enmod disk_cache\nsudo a2enmod mem_cache\nsudo a2enmod headers\nsudo a2enmod expires\nsudo a2enmod rewrite # URL yeniden yazma i\u00e7in genellikle gereklidir\nsudo a2enmod socache_shmcb # mod_mem_cache i\u00e7in gerekli\nsudo service apache2 restart<\/code><\/pre>\n<p>Bu komutlar, Apache&#8217;nin \u00f6nbellekleme yeteneklerini kullanabilmesi i\u00e7in gerekli olan t\u00fcm mod\u00fclleri etkinle\u015ftirir.<\/p>\n<h3>4. mod_cache ve mod_disk_cache Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Disk tabanl\u0131 \u00f6nbellekleme, b\u00fcy\u00fck dosyalar ve uzun s\u00fcreli \u00f6nbellekleme i\u00e7in en yayg\u0131n kullan\u0131lan y\u00f6ntemdir. \u015eimdi bu mod\u00fcllerin nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 inceleyelim.<\/p>\n<h4>4.1. Cache Dizini Olu\u015fturma ve \u0130zinler<\/h4>\n<p>\u00d6nbellek dosyalar\u0131n\u0131n depolanaca\u011f\u0131 bir dizin olu\u015fturmam\u0131z ve Apache kullan\u0131c\u0131s\u0131n\u0131n (genellikle <code>www-data<\/code>) bu dizine yazma iznine sahip oldu\u011fundan emin olmam\u0131z gerekir.<\/p>\n<pre><code>sudo mkdir -p \/var\/cache\/apache2\/mod_disk_cache\nsudo chown -R www-data:www-data \/var\/cache\/apache2\/mod_disk_cache\nsudo chmod -R 755 \/var\/cache\/apache2\/mod_disk_cache<\/code><\/pre>\n<p>Bu komutlar, <code>\/var\/cache\/apache2\/mod_disk_cache<\/code> dizinini olu\u015fturur ve Apache&#8217;nin bu dizine dosya yaz\u0131p okuyabilmesini sa\u011flar.<\/p>\n<h4>4.2. Apache Ana Yap\u0131land\u0131rmas\u0131 (apache2.conf)<\/h4>\n<p>Apache&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/apache2\/apache2.conf<\/code> veya <code>\/etc\/apache2\/conf-available\/cache.conf<\/code> gibi bir dosyada bulunur. Genel \u00f6nbellekleme ayarlar\u0131n\u0131 buraya ekleyebiliriz.<\/p>\n<p>A\u015fa\u011f\u0131daki direktifleri ilgili yap\u0131land\u0131rma dosyas\u0131na ekleyin (\u00f6rne\u011fin, <code>\/etc\/apache2\/conf-available\/cache.conf<\/code> olu\u015fturup i\u00e7ine ekleyebilir, sonra <code>sudo a2enconf cache<\/code> ile etkinle\u015ftirebilirsiniz):<\/p>\n<pre><code><IfModule mod_cache.c>\n    <IfModule mod_disk_cache.c>\n        # \u00d6nbellek dizini ve \u00f6nbellek tipi\n        CacheRoot \"\/var\/cache\/apache2\/mod_disk_cache\"\n        CacheEnable disk \"\/\"\n\n        # \u00d6nbellek boyutu limitleri (iste\u011fe ba\u011fl\u0131)\n        # CacheMaxFileSize 10000000 # 10 MB'tan b\u00fcy\u00fck dosyalar\u0131 \u00f6nbelle\u011fe alma\n        # CacheMinFileSize 1000     # 1 KB'tan k\u00fc\u00e7\u00fck dosyalar\u0131 \u00f6nbelle\u011fe alma\n\n        # \u00d6nbellek dizini y\u00f6netimi (iste\u011fe ba\u011fl\u0131)\n        # CacheDirLevels 2      # \u00d6nbellek dizin yap\u0131s\u0131n\u0131n derinli\u011fi\n        # CacheDirLength 1      # Her dizin seviyesindeki karakter say\u0131s\u0131\n\n        # \u00d6nbellek temizleme ayarlar\u0131 (iste\u011fe ba\u011fl\u0131, disk alan\u0131 y\u00f6netimi i\u00e7in)\n        # CacheMaxitems 10000   # \u00d6nbellekteki maksimum \u00f6\u011fe say\u0131s\u0131\n        # CacheGcInterval 4     # \u00d6nbellek temizleme i\u015flemi aras\u0131ndaki dakika\n        # CacheGcMaxDocs 1000   # Bir temizleme i\u015fleminde maksimum silinecek belge\n        # CacheGcPercent 10     # \u00d6nbelle\u011fin y\u00fczde ka\u00e7\u0131n\u0131n temizlenece\u011fi\n\n        # \u00d6nbellek kontrol\u00fc (Cache-Control \u00fcstbilgilerini yok sayma)\n        # CacheIgnoreNoLastMod On\n        # CacheIgnoreCacheControl On\n\n        # \u00d6nbelle\u011fe al\u0131nacak HTTP y\u00f6ntemleri (GET, HEAD varsay\u0131lan olarak \u00f6nbelle\u011fe al\u0131n\u0131r)\n        # CacheStoreNoStore Off\n        # CacheStorePrivate Off\n\n        # \u00d6nbellek ya\u015fam s\u00fcresi (e\u011fer istemci veya kaynak sunucu taraf\u0131ndan belirtilmezse)\n        # CacheDefaultExpire 3600 # Varsay\u0131lan olarak 1 saat \u00f6nbellekle\n\n        # \u00d6nbellek do\u011frulama ayarlar\u0131\n        # CacheLastModifiedFactor 0.1 # Son de\u011fi\u015ftirilme zaman\u0131na g\u00f6re \u00f6nbellek ge\u00e7erlili\u011fi\n    <\/IfModule>\n<\/IfModule><\/code><\/pre>\n<p><strong>A\u00e7\u0131klamalar:<\/strong><\/p>\n<ul>\n<li><code>CacheRoot \"\/var\/cache\/apache2\/mod_disk_cache\"<\/code>: \u00d6nbellek dosyalar\u0131n\u0131n depolanaca\u011f\u0131 ana dizini belirtir.<\/li>\n<li><code>CacheEnable disk \"\/\"<\/code>: K\u00f6k URL (<code>\/<\/code>) alt\u0131ndaki t\u00fcm i\u00e7erikler i\u00e7in disk tabanl\u0131 \u00f6nbelleklemeyi etkinle\u015ftirir. Belirli URL&#8217;ler i\u00e7in de etkinle\u015ftirebilirsiniz, \u00f6rne\u011fin <code>CacheEnable disk \"\/images\"<\/code> sadece resimleri \u00f6nbellekler.<\/li>\n<li><code>CacheMaxFileSize<\/code> ve <code>CacheMinFileSize<\/code>: \u00d6nbelle\u011fe al\u0131nacak dosyalar\u0131n boyut aral\u0131\u011f\u0131n\u0131 belirler. \u00c7ok b\u00fcy\u00fck dosyalar\u0131n \u00f6nbelle\u011fe al\u0131nmas\u0131 disk alan\u0131n\u0131 h\u0131zla doldurabilirken, \u00e7ok k\u00fc\u00e7\u00fck dosyalar\u0131n \u00f6nbelle\u011fe al\u0131nmas\u0131 performansa kayda de\u011fer bir katk\u0131 sa\u011flamayabilir.<\/li>\n<li><code>CacheDirLevels<\/code> ve <code>CacheDirLength<\/code>: \u00d6nbellek dizininin hiyerar\u015fik yap\u0131s\u0131n\u0131 kontrol eder. Varsay\u0131lan de\u011ferler genellikle yeterlidir, ancak \u00e7ok say\u0131da dosya \u00f6nbellekliyorsan\u0131z bu de\u011ferleri art\u0131rmak dosya sistemi performans\u0131n\u0131 art\u0131rabilir. \u00d6rne\u011fin, <code>CacheDirLevels 2<\/code> ve <code>CacheDirLength 1<\/code>, <code>\/var\/cache\/apache2\/mod_disk_cache\/X\/Y\/filename<\/code> \u015feklinde bir yap\u0131 olu\u015fturur.<\/li>\n<li><code>CacheDefaultExpire<\/code>: E\u011fer kaynak sunucu veya istemci taraf\u0131ndan bir \u00f6nbellek ya\u015fam s\u00fcresi belirtilmezse, bu direktif varsay\u0131lan bir ya\u015fam s\u00fcresi (saniye cinsinden) tan\u0131mlar.<\/li>\n<\/ul>\n<h4>4.3. Sanal Host Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Belirli bir sanal host (VirtualHost) i\u00e7in \u00f6nbellekleme ayarlar\u0131n\u0131 \u00f6zelle\u015ftirmek isteyebilirsiniz. Bu durumda, ilgili sanal host&#8217;un yap\u0131land\u0131rma dosyas\u0131na (\u00f6rne\u011fin, <code>\/etc\/apache2\/sites-available\/example.com.conf<\/code>) a\u015fa\u011f\u0131daki direktifleri ekleyebilirsiniz:<\/p>\n<pre><code><VirtualHost *:80>\n    ServerName example.com\n    DocumentRoot \/var\/www\/example.com\/public_html\n\n    <Directory \/var\/www\/example.com\/public_html>\n        Options Indexes FollowSymLinks MultiViews\n        AllowOverride All\n        Order allow,deny\n        allow from all\n    <\/Directory>\n\n    # Bu sanal host i\u00e7in \u00f6nbellekleme ayarlar\u0131\n    CacheEnable disk \"\/static\/\"\n    CacheEnable disk \"\/images\/\"\n    CacheMaxFileSize 5000000 # 5 MB\n    CacheDisable \/admin\/    # Y\u00f6netici panelini \u00f6nbelle\u011fe alma\n\n    # \u00d6nbellek kontrol\u00fc\n    <Location \/>\n        # \u00d6nbellekleme \u00fcstbilgilerini ayarla\n        Header set Cache-Control \"max-age=3600, public\"\n        ExpiresActive On\n        ExpiresByType image\/jpeg \"access plus 1 week\"\n        ExpiresByType text\/css \"access plus 1 day\"\n    <\/Location>\n\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\n<\/VirtualHost><\/code><\/pre>\n<p>Bu \u00f6rnekte:<\/p>\n<ul>\n<li><code>CacheEnable disk \"\/static\/\"<\/code> ve <code>CacheEnable disk \"\/images\/\"<\/code>: Sadece <code>\/static\/<\/code> ve <code>\/images\/<\/code> alt\u0131ndaki i\u00e7eriklerin disk \u00f6nbelle\u011fine al\u0131nmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>CacheDisable \/admin\/<\/code>: <code>\/admin\/<\/code> dizini alt\u0131ndaki hi\u00e7bir i\u00e7eri\u011fin \u00f6nbelle\u011fe al\u0131nmamas\u0131n\u0131 sa\u011flar, \u00e7\u00fcnk\u00fc y\u00f6netici paneli genellikle dinamiktir ve \u00f6nbelle\u011fe al\u0131nmamal\u0131d\u0131r.<\/li>\n<li><code>Header set Cache-Control \"max-age=3600, public\"<\/code>: \u0130stemci ve proxy sunuculara i\u00e7eri\u011fin 1 saat boyunca \u00f6nbelle\u011fe al\u0131nabilece\u011fini s\u00f6yler.<\/li>\n<li><code>ExpiresByType<\/code>: Belirli MIME tipleri i\u00e7in istemci taraf\u0131 \u00f6nbellek ya\u015fam s\u00fcrelerini ayarlar.<\/li>\n<\/ul>\n<p>Yap\u0131land\u0131rma de\u011fi\u015fikliklerinden sonra Apache&#8217;yi yeniden ba\u015flatmay\u0131 unutmay\u0131n:<\/p>\n<pre><code>sudo service apache2 restart<\/code><\/pre>\n<h3>5. mod_mem_cache Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Bellek tabanl\u0131 \u00f6nbellekleme, en h\u0131zl\u0131 eri\u015fimi sa\u011flar ancak bellek kaynaklar\u0131 s\u0131n\u0131rl\u0131 oldu\u011fu i\u00e7in dikkatli kullan\u0131lmal\u0131d\u0131r. Genellikle <code>mod_disk_cache<\/code> ile birlikte veya belirli k\u00fc\u00e7\u00fck, kritik i\u00e7erikler i\u00e7in tercih edilir.<\/p>\n<h4>5.1. Mod\u00fcl\u00fc Etkinle\u015ftirme<\/h4>\n<p>Daha \u00f6nce <code>sudo a2enmod mem_cache<\/code> ve <code>sudo a2enmod socache_shmcb<\/code> komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rarak bu mod\u00fclleri etkinle\u015ftirdi\u011finizden emin olun.<\/p>\n<h4>5.2. Yap\u0131land\u0131rma Direktifleri<\/h4>\n<p>Bellek \u00f6nbelleklemesi i\u00e7in genellikle <code>apache2.conf<\/code> veya \u00f6zel bir yap\u0131land\u0131rma dosyas\u0131nda (\u00f6rne\u011fin, <code>\/etc\/apache2\/conf-available\/mem_cache.conf<\/code>) a\u015fa\u011f\u0131daki direktifler kullan\u0131l\u0131r:<\/p>\n<pre><code><IfModule mod_cache.c>\n    <IfModule mod_mem_cache.c>\n        # Bellek \u00f6nbellek sa\u011flay\u0131c\u0131s\u0131n\u0131 ve boyutunu ayarla\n        # socache_shmcb genellikle mod_mem_cache i\u00e7in en iyi se\u00e7enektir\n        CacheEnable mem \"\/\"\n        MCacheSize 409600     # 400 MB bellek \u00f6nbelle\u011fi (KB cinsinden)\n        MCacheMaxObjectCount 10000 # Maksimum 10.000 obje \u00f6nbellekle\n        MCacheMinObjectSize 1     # 1 bayttan k\u00fc\u00e7\u00fck objeleri \u00f6nbelle\u011fe alma\n        MCacheMaxObjectSize 51200 # 50 KB'tan b\u00fcy\u00fck objeleri \u00f6nbelle\u011fe alma\n\n        # \u00d6nbellek ya\u015fam s\u00fcresi (e\u011fer istemci veya kaynak sunucu taraf\u0131ndan belirtilmezse)\n        # MCacheDefaultExpire 600 # Varsay\u0131lan olarak 10 dakika \u00f6nbellekle\n\n        # \u00d6nbellek temizleme ayarlar\u0131 (iste\u011fe ba\u011fl\u0131)\n        # MCacheRemovalAlgorithm GDSF # En az s\u0131k kullan\u0131lanlar\u0131 sil\n    <\/IfModule>\n<\/IfModule><\/code><\/pre>\n<p><strong>A\u00e7\u0131klamalar:<\/strong><\/p>\n<ul>\n<li><code>CacheEnable mem \"\/\"<\/code>: K\u00f6k URL alt\u0131ndaki t\u00fcm i\u00e7erikler i\u00e7in bellek tabanl\u0131 \u00f6nbelleklemeyi etkinle\u015ftirir.<\/li>\n<li><code>MCacheSize 409600<\/code>: Bellek \u00f6nbelle\u011finin toplam boyutunu kilobayt cinsinden belirler (bu \u00f6rnekte 400 MB). Bu de\u011feri sunucunuzun bo\u015f RAM miktar\u0131na g\u00f6re ayarlaman\u0131z \u00f6nemlidir.<\/li>\n<li><code>MCacheMaxObjectCount<\/code>: Bellek \u00f6nbelle\u011finde depolanabilecek maksimum obje say\u0131s\u0131n\u0131 belirler.<\/li>\n<li><code>MCacheMinObjectSize<\/code> ve <code>MCacheMaxObjectSize<\/code>: Bellek \u00f6nbelle\u011fine al\u0131nacak objelerin boyut aral\u0131\u011f\u0131n\u0131 belirler. Genellikle \u00e7ok b\u00fcy\u00fck dosyalar disk \u00f6nbelle\u011fine, daha k\u00fc\u00e7\u00fck ve kritik dosyalar bellek \u00f6nbelle\u011fine al\u0131n\u0131r.<\/li>\n<li><code>MCacheDefaultExpire<\/code>: Bellek \u00f6nbelle\u011findeki objeler i\u00e7in varsay\u0131lan ya\u015fam s\u00fcresini (saniye cinsinden) belirler.<\/li>\n<\/ul>\n<p>Yine, yap\u0131land\u0131rma de\u011fi\u015fikliklerinden sonra Apache&#8217;yi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo service apache2 restart<\/code><\/pre>\n<h3>6. \u00d6nbellekleme Politikalar\u0131 ve Kontrol\u00fc (mod_expires ve mod_headers)<\/h3>\n<p>Apache&#8217;nin kendi sunucu taraf\u0131 \u00f6nbelleklemesinin yan\u0131 s\u0131ra, istemci taraf\u0131 (taray\u0131c\u0131) ve ara proxy sunucular\u0131n (CDN&#8217;ler gibi) \u00f6nbelleklemesini kontrol etmek de \u00e7ok \u00f6nemlidir. Bu, <code>Cache-Control<\/code> ve <code>Expires<\/code> HTTP \u00fcstbilgileri arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r.<\/p>\n<h4>6.1. mod_headers ile Cache-Control \u00dcstbilgisi<\/h4>\n<p><code>mod_headers<\/code> mod\u00fcl\u00fc, HTTP yan\u0131t \u00fcstbilgilerini eklemenizi, de\u011fi\u015ftirmenizi veya silmenizi sa\u011flar. <code>Cache-Control<\/code> \u00fcstbilgisi, i\u00e7eri\u011fin nas\u0131l ve ne kadar s\u00fcreyle \u00f6nbelle\u011fe al\u0131nabilece\u011fini belirten en modern ve esnek yoldur.<\/p>\n<p>Sanal host yap\u0131land\u0131rman\u0131za veya bir dizin blo\u011funa ekleyebilirsiniz:<\/p>\n<pre><code><FilesMatch \"\\.(css|js|gif|png|jpg|jpeg|ico|pdf|swf|svg|webp)$\">\n    Header set Cache-Control \"max-age=604800, public\"\n<\/FilesMatch>\n<FilesMatch \"\\.(html|htm)$\">\n    Header set Cache-Control \"max-age=3600, public, must-revalidate\"\n<\/FilesMatch>\n<FilesMatch \"\\.(php)$\">\n    Header set Cache-Control \"no-cache, no-store, must-revalidate\"\n    Header set Pragma \"no-cache\"\n    Header set Expires \"0\"\n<\/FilesMatch><\/code><\/pre>\n<ul>\n<li><code>max-age=604800<\/code>: \u0130\u00e7eri\u011fin istemci taraf\u0131nda 7 g\u00fcn (604800 saniye) boyunca \u00f6nbelle\u011fe al\u0131nabilece\u011fini belirtir.<\/li>\n<li><code>public<\/code>: \u0130\u00e7eri\u011fin herhangi bir \u00f6nbellek taraf\u0131ndan (hem istemci hem de proxy) \u00f6nbelle\u011fe al\u0131nabilece\u011fini g\u00f6sterir.<\/li>\n<li><code>must-revalidate<\/code>: \u00d6nbellek s\u00fcresi doldu\u011funda, istemcinin sunucuya i\u00e7eri\u011fin g\u00fcncel olup olmad\u0131\u011f\u0131n\u0131 sormas\u0131 gerekti\u011fini belirtir.<\/li>\n<li><code>no-cache<\/code>, <code>no-store<\/code>: \u0130\u00e7eri\u011fin hi\u00e7bir \u015fekilde \u00f6nbelle\u011fe al\u0131nmamas\u0131 gerekti\u011fini belirtir. Genellikle dinamik veya hassas i\u00e7erikler i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<h4>6.2. mod_expires ile Expires \u00dcstbilgisi<\/h4>\n<p><code>mod_expires<\/code> mod\u00fcl\u00fc, taray\u0131c\u0131lar\u0131n ve proxy sunucular\u0131n i\u00e7eri\u011fi belirli bir tarihe kadar \u00f6nbelle\u011fe almas\u0131n\u0131 sa\u011flayan <code>Expires<\/code> \u00fcstbilgisini otomatik olarak olu\u015fturur. Bu, <code>Cache-Control<\/code>&#8216;dan daha eski bir y\u00f6ntem olsa da hala yayg\u0131n olarak kullan\u0131l\u0131r.<\/p>\n<pre><code><IfModule mod_expires.c>\n    ExpiresActive On\n    ExpiresDefault \"access plus 1 month\"\n\n    ExpiresByType text\/html \"access plus 1 hour\"\n    ExpiresByType text\/css \"access plus 1 week\"\n    ExpiresByType application\/javascript \"access plus 1 week\"\n    ExpiresByType image\/jpeg \"access plus 1 month\"\n    ExpiresByType image\/png \"access plus 1 month\"\n    ExpiresByType image\/gif \"access plus 1 month\"\n    ExpiresByType application\/pdf \"access plus 1 month\"\n    ExpiresByType application\/x-shockwave-flash \"access plus 1 month\"\n<\/IfModule><\/code><\/pre>\n<ul>\n<li><code>ExpiresActive On<\/code>: <code>mod_expires<\/code>&#8216;i etkinle\u015ftirir.<\/li>\n<li><code>ExpiresDefault \"access plus 1 month\"<\/code>: E\u011fer belirli bir MIME tipi i\u00e7in kural yoksa, varsay\u0131lan olarak i\u00e7eri\u011fin 1 ay boyunca \u00f6nbelle\u011fe al\u0131nabilece\u011fini belirtir.<\/li>\n<li><code>ExpiresByType image\/jpeg \"access plus 1 month\"<\/code>: JPEG resimlerinin 1 ay boyunca \u00f6nbelle\u011fe al\u0131nmas\u0131n\u0131 sa\u011flar.<\/li>\n<\/ul>\n<p>Bu \u00fcstbilgiler, hem Apache&#8217;nin kendi \u00f6nbelleklemesiyle hem de genel web performans\u0131yla birlikte \u00e7al\u0131\u015farak en iyi sonu\u00e7lar\u0131 verir.<\/p>\n<h3>7. \u00d6nbellek Ge\u00e7ersiz K\u0131lma (Cache Invalidation)<\/h3>\n<p>\u00d6nbellekleme, i\u00e7erik g\u00fcncellemelerini zorla\u015ft\u0131rabilir. Bir i\u00e7erik de\u011fi\u015fti\u011finde, \u00f6nbellekte eski s\u00fcr\u00fcm kalabilir. Bu durumu \u00f6nlemek i\u00e7in \u00f6nbelle\u011fin ge\u00e7ersiz k\u0131l\u0131nmas\u0131 (invalidation) gerekir.<\/p>\n<h4>7.1. Manuel Temizleme<\/h4>\n<p>Disk tabanl\u0131 \u00f6nbellek i\u00e7in, \u00f6nbellek dizinini manuel olarak silebilirsiniz:<\/p>\n<pre><code>sudo rm -rf \/var\/cache\/apache2\/mod_disk_cache\/*\nsudo service apache2 restart # Apache'yi yeniden ba\u015flatmak mod_mem_cache'i temizler<\/code><\/pre>\n<p>Bu y\u00f6ntem, \u00f6nbelle\u011fi tamamen temizler. Ancak, dinamik bir web sitesinde her i\u00e7erik g\u00fcncellemesinde bunu yapmak pratik de\u011fildir.<\/p>\n<h4>7.2. Programatik Temizleme ve Ak\u0131ll\u0131 Politikalar<\/h4>\n<ul>\n<li><strong>Versiyonlama (Versioning):<\/strong> Statik dosyalar i\u00e7in en iyi y\u00f6ntemlerden biri, dosya adlar\u0131na veya URL&#8217;lere bir versiyon numaras\u0131 veya hash eklemektir (\u00f6rne\u011fin, <code>style.css?v=1.2<\/code> veya <code>style.1a2b3c.css<\/code>). \u0130\u00e7erik de\u011fi\u015fti\u011finde versiyon numaras\u0131n\u0131 g\u00fcncellerseniz, taray\u0131c\u0131lar ve proxy&#8217;ler otomatik olarak yeni s\u00fcr\u00fcm\u00fc ister.<\/li>\n<li><strong><code>Cache-Control: no-cache<\/code> veya <code>must-revalidate<\/code>:<\/strong> Dinamik i\u00e7erikler i\u00e7in, sunucunun her zaman g\u00fcncel bir kopya i\u00e7in do\u011frulamas\u0131 gerekti\u011fini belirtmek \u00fczere bu \u00fcstbilgileri kullan\u0131n.<\/li>\n<li><strong>Apache&#8217;nin <code>Cache-Control<\/code> Direktifleri:<\/strong> <code>CacheMaxExpire<\/code>, <code>CacheLastModifiedFactor<\/code> gibi direktiflerle Apache&#8217;nin \u00f6nbellek do\u011frulama davran\u0131\u015f\u0131n\u0131 ayarlayabilirsiniz.<\/li>\n<li><strong>\u00d6nbellek Anahtar\u0131 (Cache Key) De\u011fi\u015fimi:<\/strong> \u00d6zellikle ters proxy \u00f6nbelleklemesinde (\u00f6rne\u011fin, Varnish ile Apache \u00f6n\u00fcnde), bir i\u00e7eri\u011fin \u00f6nbellek anahtar\u0131n\u0131 de\u011fi\u015ftirerek yeni bir \u00f6nbellek girdisi olu\u015fturulmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/li>\n<\/ul>\n<h3>8. \u00d6nbelleklemenin Test Edilmesi<\/h3>\n<p>\u00d6nbelleklemenin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in birka\u00e7 farkl\u0131 y\u00f6ntemle test yapabilirsiniz.<\/p>\n<h4>8.1. HTTP \u00dcstbilgileri Kontrol\u00fc<\/h4>\n<p>Taray\u0131c\u0131n\u0131z\u0131n geli\u015ftirici ara\u00e7lar\u0131n\u0131 (F12) kullanarak A\u011f (Network) sekmesinden bir sayfa iste\u011fi yap\u0131n ve yan\u0131t \u00fcstbilgilerini inceleyin.<\/p>\n<ul>\n<li><code>Cache-Control<\/code> ve <code>Expires<\/code> \u00fcstbilgilerinin bekledi\u011finiz de\u011ferleri i\u00e7erdi\u011finden emin olun.<\/li>\n<li>Apache&#8217;nin kendi \u00f6nbelleklemesi etkinse, genellikle <code>X-Cache<\/code> veya <code>X-Cache-Lookup<\/code> gibi \u00f6zel \u00fcstbilgiler g\u00f6r\u00fcrs\u00fcn\u00fcz. \u00d6rne\u011fin:\n<ul>\n<li><code>X-Cache: HIT from example.com<\/code>: \u0130\u00e7erik \u00f6nbellekten sunuldu.<\/li>\n<li><code>X-Cache: MISS from example.com<\/code>: \u0130\u00e7erik \u00f6nbellekte bulunamad\u0131 ve kaynak sunucudan al\u0131nd\u0131.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>8.2. Apache Eri\u015fim Loglar\u0131<\/h4>\n<p>Apache eri\u015fim loglar\u0131n\u0131 (<code>\/var\/log\/apache2\/access.log<\/code>) inceleyerek isteklerin durumunu g\u00f6rebilirsiniz. \u00d6nbellekten gelen istekler genellikle daha h\u0131zl\u0131 yan\u0131t s\u00fcrelerine sahip olacakt\u0131r.<\/p>\n<h4>8.3. Cache Dizini Kontrol\u00fc (Disk \u00d6nbelle\u011fi \u0130\u00e7in)<\/h4>\n<p>E\u011fer <code>mod_disk_cache<\/code> kullan\u0131yorsan\u0131z, <code>\/var\/cache\/apache2\/mod_disk_cache<\/code> dizinine bakarak \u00f6nbellek dosyalar\u0131n\u0131n olu\u015fup olu\u015fmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz:<\/p>\n<pre><code>sudo ls -l \/var\/cache\/apache2\/mod_disk_cache<\/code><\/pre>\n<p>Bu dizin alt\u0131nda hiyerar\u015fik bir yap\u0131 ve \u00f6nbelle\u011fe al\u0131nan i\u00e7eri\u011fin ikili temsillerini g\u00f6receksiniz.<\/p>\n<h3>9. Performans \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h3>\n<p>Apache \u00f6nbelleklemesinden en iyi \u015fekilde yararlanmak i\u00e7in baz\u0131 ipu\u00e7lar\u0131 ve en iyi uygulamalar:<\/p>\n<ul>\n<li><strong>Do\u011fru \u00d6nbellekleme Stratejisi:<\/strong> Her \u015feyi \u00f6nbelleklemeye \u00e7al\u0131\u015fmay\u0131n. Statik dosyalar (resimler, CSS, JS), s\u0131k g\u00fcncellenmeyen dinamik i\u00e7erik par\u00e7alar\u0131 veya tam sayfalar i\u00e7in \u00f6nbellekleme en etkilidir. Kullan\u0131c\u0131ya \u00f6zel (ki\u015fiselle\u015ftirilmi\u015f) veya s\u0131k g\u00fcncellenen i\u00e7erikler i\u00e7in \u00f6nbellekleme yapmaktan ka\u00e7\u0131n\u0131n veya k\u0131sa s\u00fcreli \u00f6nbellekleme kullan\u0131n.<\/li>\n<li><strong>\u00d6nbellek Boyutu ve Konumu:<\/strong> Disk \u00f6nbelle\u011fi i\u00e7in yeterli disk alan\u0131 ay\u0131r\u0131n. Bellek \u00f6nbelle\u011fi i\u00e7in sunucunuzun bo\u015f RAM miktar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurun. A\u015f\u0131r\u0131 bellek kullan\u0131m\u0131 sistemi yava\u015flatabilir.<\/li>\n<li><strong><code>mod_disk_cache<\/code> ve <code>mod_mem_cache<\/code> Kombinasyonu:<\/strong> S\u0131k eri\u015filen k\u00fc\u00e7\u00fck dosyalar\u0131 (ikonlar, k\u00fc\u00e7\u00fck CSS\/JS) <code>mod_mem_cache<\/code> ile, daha b\u00fcy\u00fck ve daha az s\u0131k eri\u015filen statik dosyalar\u0131 (b\u00fcy\u00fck resimler, PDF&#8217;ler) <code>mod_disk_cache<\/code> ile \u00f6nbelleklemek iyi bir stratejidir.<\/li>\n<li><strong>\u0130stemci Taraf\u0131 \u00d6nbellekleme \u00d6nceli\u011fi:<\/strong> Her zaman \u00f6nce istemci taraf\u0131 \u00f6nbelleklemeyi optimize edin (<code>Cache-Control<\/code>, <code>Expires<\/code>). Bu, sunucuya hi\u00e7 istek gelmemesini sa\u011flayarak en b\u00fcy\u00fck performans\u0131 sunar.<\/li>\n<li><strong>GZIP S\u0131k\u0131\u015ft\u0131rma:<\/strong> \u00d6nbelleklemenin yan\u0131 s\u0131ra, <code>mod_deflate<\/code> ile i\u00e7erik s\u0131k\u0131\u015ft\u0131rmay\u0131 etkinle\u015ftirmek de bant geni\u015fli\u011fi kullan\u0131m\u0131n\u0131 azalt\u0131r ve y\u00fckleme s\u00fcrelerini h\u0131zland\u0131r\u0131r. S\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f i\u00e7erik \u00f6nbelle\u011fe al\u0131nmal\u0131d\u0131r.<\/li>\n<li><strong>Dinamik \u0130\u00e7erik ve Kimlik Do\u011frulama:<\/strong> Kimlik do\u011frulamas\u0131 gerektiren sayfalar\u0131 veya kullan\u0131c\u0131ya \u00f6zel dinamik i\u00e7erikleri \u00f6nbelle\u011fe almaktan ka\u00e7\u0131n\u0131n. Yanl\u0131\u015fl\u0131kla bir kullan\u0131c\u0131n\u0131n ki\u015fisel verilerini ba\u015fka bir kullan\u0131c\u0131ya sunabilirsiniz. E\u011fer \u00f6nbelleklemek zorundaysan\u0131z, <code>Vary: Cookie<\/code> veya <code>Vary: Authorization<\/code> gibi \u00fcstbilgileri kullanarak farkl\u0131 kullan\u0131c\u0131lar i\u00e7in farkl\u0131 \u00f6nbellek kopyalar\u0131 olu\u015fturulmas\u0131n\u0131 sa\u011flay\u0131n.<\/li>\n<li><strong>SSL\/TLS ile \u00d6nbellekleme:<\/strong> HTTPS \u00fczerinden sunulan i\u00e7erikler genellikle varsay\u0131lan olarak \u00f6nbelle\u011fe al\u0131nmaz (<code>Cache-Control: private<\/code>). G\u00fcvenli i\u00e7eri\u011fi \u00f6nbelleklemek istiyorsan\u0131z, <code>Cache-Control: public<\/code> \u00fcstbilgisini dikkatli bir \u015fekilde kullanman\u0131z gerekebilir.<\/li>\n<li><strong>Apache Yeniden Ba\u015flatma:<\/strong> \u00d6nbellekleme yap\u0131land\u0131rmas\u0131nda herhangi bir de\u011fi\u015fiklik yapt\u0131ktan sonra Apache&#8217;yi yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/li>\n<\/ul>\n<h3>10. S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4>10.1. Apache \u00f6nbelle\u011fi ne kadar yer kaplamal\u0131?<\/h4>\n<p>Bu, web sitenizin boyutuna, trafi\u011fine ve \u00f6nbelleklemek istedi\u011finiz i\u00e7eri\u011fin miktar\u0131na ba\u011fl\u0131d\u0131r. Disk \u00f6nbelle\u011fi i\u00e7in y\u00fczlerce MB&#8217;tan birka\u00e7 GB&#8217;a kadar de\u011fi\u015febilir. Bellek \u00f6nbelle\u011fi i\u00e7in genellikle 100 MB ile 500 MB aras\u0131 bir de\u011fer yeterli olabilir, ancak sunucunuzun toplam RAM&#8217;ini ve di\u011fer uygulamalar\u0131n bellek ihtiyac\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131s\u0131n\u0131z.<\/p>\n<h4>10.2. \u00d6nbellek dizinini nereye olu\u015fturmal\u0131y\u0131m?<\/h4>\n<p>Genellikle <code>\/var\/cache\/apache2\/<\/code> alt\u0131nda \u00f6zel bir dizin (\u00f6rne\u011fin, <code>mod_disk_cache<\/code>) olu\u015fturmak en iyi uygulamad\u0131r. Bu, standart bir konumdur ve sistem bak\u0131m\u0131 s\u0131ras\u0131nda kolayca bulunabilir.<\/p>\n<h4>10.3. \u00d6nbellekleme, dinamik PHP sayfalar\u0131 i\u00e7in de \u00e7al\u0131\u015f\u0131r m\u0131?<\/h4>\n<p>Evet, Apache <code>mod_cache<\/code>, PHP taraf\u0131ndan olu\u015fturulan HTML \u00e7\u0131kt\u0131s\u0131n\u0131 da \u00f6nbelle\u011fe alabilir. Ancak, PHP beti\u011fi taraf\u0131ndan g\u00f6nderilen <code>Cache-Control<\/code> \u00fcstbilgileri Apache&#8217;nin \u00f6nbellekleme davran\u0131\u015f\u0131n\u0131 etkileyecektir. E\u011fer PHP <code>no-cache<\/code> g\u00f6nderiyorsa, Apache bunu dikkate alacakt\u0131r. Bu durumda, <code>CacheIgnoreCacheControl On<\/code> direktifini kullanman\u0131z gerekebilir, ancak bunu dikkatli yap\u0131n, \u00e7\u00fcnk\u00fc dinamik i\u00e7eri\u011fi yanl\u0131\u015fl\u0131kla \u00f6nbellekleyebilirsiniz.<\/p>\n<h4>10.4. \u00d6nbellek temizleme i\u015flemini otomatikle\u015ftirebilir miyim?<\/h4>\n<p>Evet, <code>CacheGcInterval<\/code>, <code>CacheGcMaxDocs<\/code> ve <code>CacheGcPercent<\/code> gibi direktifler, Apache&#8217;nin kendi \u00f6nbellek temizleme mekanizmalar\u0131n\u0131 sa\u011flar. Daha geli\u015fmi\u015f otomasyon i\u00e7in, web uygulaman\u0131zda bir i\u00e7erik g\u00fcncellendi\u011finde Apache \u00f6nbelle\u011fini temizleyen \u00f6zel bir betik (\u00f6rne\u011fin, <code>rm -rf \/var\/cache\/apache2\/mod_disk_cache\/*<\/code> komutunu \u00e7al\u0131\u015ft\u0131ran) yazabilirsiniz.<\/p>\n<h3>11. Sorun Giderme<\/h3>\n<p>\u00d6nbellekleme yap\u0131land\u0131rmas\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<ul>\n<li><strong>\u00d6nbellek Olu\u015fmuyor:<\/strong>\n<ul>\n<li><code>mod_cache<\/code>, <code>mod_disk_cache<\/code>\/<code>mod_mem_cache<\/code> mod\u00fcllerinin etkin oldu\u011fundan emin olun (<code>sudo a2enmod<\/code>).<\/li>\n<li>\u00d6nbellek dizininin (<code>CacheRoot<\/code>) do\u011fru oldu\u011fundan ve Apache kullan\u0131c\u0131s\u0131n\u0131n (<code>www-data<\/code>) bu dizine yazma izinlerine sahip oldu\u011fundan emin olun (<code>sudo chown<\/code>, <code>sudo chmod<\/code>).<\/li>\n<li>Apache hata loglar\u0131n\u0131 (<code>\/var\/log\/apache2\/error.log<\/code>) kontrol edin.<\/li>\n<li><code>CacheEnable<\/code> direktifinin do\u011fru kapsamda (genel, sanal host, konum) ve do\u011fru URL&#8217;ler i\u00e7in tan\u0131mland\u0131\u011f\u0131ndan emin olun.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Eski \u0130\u00e7erik Sunuluyor:<\/strong>\n<ul>\n<li>\u00d6nbellek ya\u015fam s\u00fcrelerini (<code>CacheDefaultExpire<\/code>, <code>ExpiresByType<\/code>, <code>Cache-Control max-age<\/code>) kontrol edin. \u00c7ok uzun ayarlanm\u0131\u015f olabilirler.<\/li>\n<li>Kaynak sunucunun veya PHP uygulamas\u0131n\u0131n <code>Cache-Control: no-cache<\/code> veya <code>Expires: 0<\/code> gibi \u00fcstbilgiler g\u00f6ndermedi\u011finden emin olun.<\/li>\n<li>Gerekirse \u00f6nbelle\u011fi manuel olarak temizleyin ve Apache&#8217;yi yeniden ba\u015flat\u0131n.<\/li>\n<li>\u0130stemci taraf\u0131 taray\u0131c\u0131 \u00f6nbelle\u011fini de temizlemeyi unutmay\u0131n (Ctrl+F5 veya Shift+F5).<\/li>\n<\/ul>\n<\/li>\n<li><strong>Performans Art\u0131\u015f\u0131 Yok:<\/strong>\n<ul>\n<li>\u00d6nbelle\u011fe al\u0131nan i\u00e7eri\u011fin ger\u00e7ekten s\u0131k eri\u015filen i\u00e7erik olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/li>\n<li><code>X-Cache<\/code> \u00fcstbilgisini kontrol ederek \u00f6nbellek hit oran\u0131n\u0131 g\u00f6zlemleyin. E\u011fer \u00e7o\u011fu istek MISS olarak d\u00f6n\u00fcyorsa, \u00f6nbellekleme stratejinizi g\u00f6zden ge\u00e7irin.<\/li>\n<li>Sunucunuzda yeterli RAM veya h\u0131zl\u0131 disk I\/O oldu\u011fundan emin olun.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>12. Sonu\u00e7<\/h3>\n<p>Apache i\u00e7erik \u00f6nbelleklemesi, web sitenizin performans\u0131n\u0131 art\u0131rmak, sunucu y\u00fck\u00fcn\u00fc azaltmak ve kullan\u0131c\u0131 deneyimini iyile\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Ubuntu 14.04 \u00fczerinde <code>mod_cache<\/code>, <code>mod_disk_cache<\/code> ve <code>mod_mem_cache<\/code> mod\u00fcllerini do\u011fru bir \u015fekilde yap\u0131land\u0131rarak, statik ve dinamik i\u00e7eriklerinizi etkin bir \u015fekilde \u00f6nbelle\u011fe alabilirsiniz. Ayr\u0131ca, <code>mod_expires<\/code> ve <code>mod_headers<\/code> ile istemci taraf\u0131 \u00f6nbelleklemesini optimize etmek, genel web performans\u0131n\u0131z\u0131 daha da art\u0131racakt\u0131r. Yap\u0131land\u0131rma s\u0131ras\u0131nda dikkatli olmak, \u00f6nbellek politikalar\u0131n\u0131 do\u011fru belirlemek ve d\u00fczenli olarak test etmek, sorunsuz ve y\u00fcksek performansl\u0131 bir web sunucusu i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04)\nWeb sitelerinin performans\u0131, kullan\u0131c\u0131 deneyimi ve arama motoru s\u0131ralamas\u0131 i\u00e7in","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-36528","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04)\" \/>\n<meta property=\"og:description\" content=\"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04) Web sitelerinin performans\u0131, kullan\u0131c\u0131 deneyimi ve arama motoru s\u0131ralamas\u0131 i\u00e7in\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-19T08:40:53+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04)\",\"datePublished\":\"2025-12-19T08:40:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/\"},\"wordCount\":2912,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/\",\"name\":\"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-19T08:40:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/","og_locale":"tr_TR","og_type":"article","og_title":"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04)","og_description":"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04) Web sitelerinin performans\u0131, kullan\u0131c\u0131 deneyimi ve arama motoru s\u0131ralamas\u0131 i\u00e7in","og_url":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-19T08:40:53+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04)","datePublished":"2025-12-19T08:40:53+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/"},"wordCount":2912,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/","url":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/","name":"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-19T08:40:53+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/apache-icerik-onbellekleme-yapilandirmasi-ubuntu-14-04\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Apache \u0130\u00e7erik \u00d6nbellekleme Yap\u0131land\u0131rmas\u0131 (Ubuntu 14.04)"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36528"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36528\/revisions"}],"predecessor-version":[{"id":36529,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36528\/revisions\/36529"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}