1. KeepAlive Özelliğini İyi Kullanmak
Apache'de KeepAlive özelliği, bir istemci ile sunucu arasındaki bağlantıyı açık tutarak, birden fazla isteğin tek bir bağlantı üzerinden gerçekleştirilmesini sağlar. Ancak, bu özellik dikkatli kullanıldığında performansı ciddi şekilde artırabilir. KeepAlive'ı etkinleştirerek, her bir HTTP isteği için yeni bir bağlantı açmak yerine, birden fazla istek için mevcut bağlantıyı kullanabilirsiniz. Bu, özellikle düşük bant genişliğine sahip ağlarda performans artışı sağlar.
Öneri: KeepAlive süresini çok uzun tutmak, sunucu kaynaklarını tüketebilir. 5-10 saniye arasında bir süre belirlemek genellikle yeterli olacaktır.
2. Mod_Deflate ile İletişim Verisini Küçültmek
Veri sıkıştırma, web sayfalarınızın daha hızlı yüklenmesine yardımcı olabilir. Apache'nin mod_deflate modülü, HTTP yanıtlarını sıkıştırarak veri boyutunu azaltır ve böylece daha hızlı bir kullanıcı deneyimi sunar. Bu, özellikle büyük boyutlu dosyalar ve içerikler için faydalıdır.
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
Öneri: Sıkıştırma işlemini yalnızca metin tabanlı içeriklerle sınırlamak, sistemin gereksiz yere kaynak harcamasını önler.
3. ModExpires ile İçerik Önbellekleme
Web sitenizin içeriklerinin sık sık değişmediği durumlarda, mod_expires modülünü kullanarak içeriklerinizi önbelleğe alabilirsiniz. Bu, web sayfalarının hızlı bir şekilde yüklenmesini sağlar ve sunucunun daha az iş yüküyle çalışmasına yardımcı olur.
ExpiresActive On
ExpiresDefault "access plus 1 month"
Öneri: Statik içeriklerinizi uzun süreli olarak önbelleğe almak, sunucu yükünü azaltır ve kullanıcı deneyimini iyileştirir.
4. Mod_Ratelimit ile Hız Sınırı Koymak
DDoS (Distributed Denial of Service) saldırılarına karşı bir önlem olarak, Apache'nin mod_ratelimit modülünü kullanarak, bir istemcinin belirli bir süre içinde yapabileceği istek sayısını sınırlayabilirsiniz. Bu, sunucunuzun daha sağlıklı çalışmasını sağlar ve aşırı yüklenmesini engeller.
SetEnvIf Request_URI "^/admin" rate_limit=1
SetOutputFilter RATE_LIMIT
SetEnv rate_limit 4
Öneri: Bu modu, yalnızca yoğun trafik aldığınız sayfalarda kullanın, aksi halde yanlış yapılandırmalar sunucu hızınızı etkileyebilir.
5. Apache’nin Bellek Kullanımını İyileştirmek
Apache'nin bellek kullanımı üzerinde ince ayar yapmak, sunucunuzun daha verimli çalışmasına olanak sağlar. Örneğin, MaxClients değerini düşük tutarak aynı anda çalışacak olan istemci sayısını sınırlayabilir, bu sayede bellek tüketimi azaltılabilir.
MaxClients 150
Öneri: Sunucunuzun donanım kapasitesine göre MaxClients değerini optimize edin.
6. İhtiyaç Olmayan Modülleri Devre Dışı Bırakmak
Apache, birçok farklı modül ile birlikte gelir, ancak bazıları sizin ihtiyaçlarınıza hizmet etmeyebilir. İhtiyacınız olmayan modülleri devre dışı bırakmak, sistem kaynaklarını boşuna harcamanızı engeller.
# Apache'nin gereksiz modüllerini devre dışı bırakın
LoadModule status_module modules/mod_status.so
ExtendedStatus On
Öneri: Sunucunuzda yalnızca gerekli olan modülleri aktif tutmak, daha hızlı yanıt süreleri sağlar.
7. HTTP/2 Kullanımını Etkinleştirmek
HTTP/2, modern web sayfalarının daha hızlı yüklenmesini sağlayan bir protokoldür. Apache 2.4.17 ve sonrasında HTTP/2 desteği vardır, bu yüzden HTTP/2'yi etkinleştirerek web sayfalarınızın yüklenme hızını önemli ölçüde iyileştirebilirsiniz.
Protocols h2 http/1.1
Öneri: HTTP/2'yi yalnızca HTTPS üzerinden etkinleştirebilirsiniz. Bu yüzden SSL yapılandırmanızı doğru şekilde yapmanız gerekmektedir.
8. DNS Prefetching ile Trafik Yönlendirmesi
DNS prefetching, bir web sayfası yüklenmeden önce, dış kaynaklardan gelen bağlantıları çözümlemeye başlar. Bu sayede, sayfa yüklendikten sonra dış bağlantılar hemen kullanılabilir.
Öneri: DNS prefetching özelliğini yalnızca dış bağlantılara ihtiyaç duyduğunuzda kullanın.
9. Hata Loglarını Düşürmek
Hata logları, Apache'nin çalışırken karşılaştığı sorunları kaydeder, ancak çok fazla log kaydının yazılması, disk alanınızı tüketebilir ve sunucunun performansını etkileyebilir. Gereksiz hata loglarını azaltmak için log seviyesini doğru bir şekilde yapılandırabilirsiniz.
LogLevel warn
Öneri: Log seviyesini "warn" olarak ayarlamak, önemli hataları gözden kaçırmadan gereksiz loglamayı engeller.
10. Apache’yi Yeniden Başlatmak İçin Otomatik Zamanlama
Apache'nin her zaman verimli çalışabilmesi için periyodik olarak yeniden başlatılması gerekir. Otomatik yeniden başlatma zamanlamaları, Apache'nin sorunsuz bir şekilde çalışmasını sağlar.
sudo systemctl restart apache2
Öneri: Apache'yi düzenli aralıklarla yeniden başlatmak, bellek sızıntılarını önler ve sunucunun performansını iyileştirir.