Apache Cache, web performansını artırmak ve sunucu yükünü hafifletmek amacıyla kullanılan en etkili yöntemlerden biri önbellekleme (cache) işlemidir. Apache web sunucusu da bu konuda çeşitli önbellekleme modülleri sunarak performansı optimize eder. Bu makalede, Apache Cache’in nasıl uygulanacağı, hangi önbellekleme yöntemlerinin kullanılabileceği ve Apache ile Nginx cacheAMP mekanizmaları arasındaki farklar ele alınacaktır.
Önbellekleme, sunucuya gelen tekrarlanan isteklerde dinamik içerikleri sunucunun yeniden işlemden geçirmesi yerine, daha önce işlenmiş içerikleri hızla kullanıcıya sunma işlemi olarak tanımlanabilir. Bu sayede web sunucusunun yanıt süresi hızlanır ve işlem yükü azalır. Apache, bu işlevi yerine getirmek için birden fazla önbellekleme modülü sunar.
Apache’nin öne çıkan önbellekleme modüllerinden bazıları şunlardır:
Apache üzerinde önbellekleme işlemini etkinleştirmek için modüllerin yüklenmesi ve yapılandırılması gerekmektedir. Aşağıda, Apache Cache’in nasıl etkinleştirileceği adım adım açıklanmıştır.
Öncelikle, Apache üzerinde bu modüllerin etkinleştirilmesi gerekmektedir. Eğer Ubuntu veya CentOS gibi bir dağıtım kullanıyorsanız aşağıdaki komutları uygulayabilirsiniz:
sudo a2enmod cachesudo a2enmod cache_disk
Bu komutlar Apache üzerinde mod_cache ve mod_cache_disk modüllerini etkinleştirir. Daha sonra Apache’yi yeniden başlatmanız gerekecektir:
sudo systemctl restart apache2
Modüller yüklendikten sonra, Apache’nin konfigürasyon dosyasını düzenleyerek önbellekleme işlemini yapılandırabilirsiniz. Aşağıda örnek bir yapılandırma dosyası verilmiştir:
<IfModule mod_cache.c>
CacheQuickHandler off
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheIgnoreHeaders Set-Cookie
<IfModule mod_cache_disk.c>
CacheRoot /var/cache/apache2/mod_cache_disk
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 1
</IfModule>
</IfModule>
Bu ayarlarla, sunucunun kök dizininde (/) yapılan tüm isteklerin önbelleklenmesi sağlanır.
Önbelleğe alınan içeriklerin geçerlilik süresini belirlemek için mod_expires modülünü kullanabilirsiniz. Bu modül, belirli içeriklerin ne kadar süreyle önbellekte tutulacağını belirler:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 1 day"
ExpiresByType image/gif "access plus 1 week"
</IfModule>
Yukarıdaki örnekte, HTML sayfalarının 1 gün boyunca, GIF resimlerinin ise 1 hafta boyunca önbellekte tutulacağı belirtilmiştir.
Hem Apache hem de Nginx önbellekleme özellikleri sunar, ancak bu iki web sunucusunun önbellekleme mekanizmaları farklı şekilde çalışır. Aşağıda Apache ve Nginx’in önbellekleme işlemleri arasındaki farklara dair bilgiler bulabilirsiniz:
proxy_cache modülü ile dinamik içerikleri önbelleğe alma konusunda güçlüdür. Dinamik içeriklerle çalışan uygulamalar için ideal bir çözümdür.mod_cache modülüyle statik ve dinamik içerikleri önbelleğe alabilir. Apache’nin disk tabanlı ve bellek tabanlı önbellekleme seçenekleri kullanıcıya daha fazla esneklik sağlar.mod_cache ve diğer modüller sayesinde daha geniş bir yapılandırma yelpazesi sunar. Özellikle büyük ve karmaşık sistemler için çeşitli önbellekleme stratejileri geliştirmek mümkündür.Apache Cache, web sitenizin performansını artırmak ve sunucu yükünü hafifletmek için önemli bir araçtır. mod_cache, mod_cache_disk, mod_expires gibi modüller sayesinde içeriklerin önbelleğe alınması kolaylıkla yapılabilir. Nginx ile karşılaştırıldığında, Apache’nin daha esnek ama daha karmaşık bir önbellekleme yapısına sahip olduğunu söyleyebiliriz. Ancak her iki web sunucusu da farklı kullanım senaryolarında başarılı sonuçlar verir.