Apache, dünya çapında yaygın olarak kullanılan açık kaynaklı bir web sunucusudur. Apache sunucusunun yüksek performans göstermesi için doğru yapılandırma, optimizasyon ve bakım işlemleri gereklidir. Apache sunucu optimizasyonu, özellikle büyük trafiğe sahip web siteleri için önemlidir. Apache’nin düzgün çalışması ve yüksek verim almanız için aşağıdaki optimizasyon adımlarını uygulayabilirsiniz.
1. Apache Modüllerini Düzenleyin
Apache, çeşitli modüllerle özelleştirilebilir ve her modül sunucunun performansını etkileyebilir. Kullanılmayan modülleri devre dışı bırakmak, hem güvenlik hem de performans açısından faydalıdır.
- Gereksiz Modülleri Devre Dışı Bırakın: Apache sunucusu, çok sayıda modül içerir. Ancak, bazıları sitenizin ihtiyacı olmayan ve sunucu üzerinde ek yük oluşturan modüller olabilir. Bu modülleri devre dışı bırakmak performansı artırabilir.Önerilen devre dışı bırakılacak modüller:
mod_status
: Sunucu durumu izlemesi için gereklidir, ancak genel kullanımdan fazladır.mod_info
: Web sunucusu bilgilerini gösteren modüldür.mod_userdir
: Kullanıcı dizini erişimi sağlar, ancak çoğu zaman gereksizdir.
/etc/httpd/httpd.conf
veya/etc/apache2/apache2.conf
) ilgili modül satırlarını yorum satırına alabilirsiniz. - Modül Optimizasyonu: Yalnızca ihtiyaç duyduğunuz modülleri etkinleştirin. Örneğin,
mod_rewrite
gibi sık kullanılan modüller, SEO ve URL yönlendirmeleri için gereklidir, ancak sadece ihtiyacınız olan modülleri etkinleştirerek sunucunun gereksiz yükten kaçınmasını sağlayın.
2. Apache Konfigürasyonunu Optimize Edin
Apache’nin temel yapılandırma dosyasındaki ayarlar, sunucunun genel performansını doğrudan etkiler. Bu ayarlarda yapılacak küçük değişiklikler, önemli performans iyileştirmeleri sağlayabilir.
- KeepAlive Özelliğini Yapılandırın:
KeepAlive
özelliği, aynı istemciden gelen birden fazla isteği bir bağlantı üzerinden işler, böylece ağda daha az kaynak kullanılır. Ancak, çok yüksek değerler de sunucuyu zorlayabilir. Bu yüzden, aşağıdaki gibi yapılandırabilirsiniz:bashKodu kopyalaKeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5
- MaxRequestWorkers ve ServerLimit Ayarlarını Yapılandırın:
MaxRequestWorkers
(eski adıylaMaxClients
), aynı anda işlenebilecek maksimum istek sayısını belirler. Bu değeri yüksek tutmak, daha fazla eş zamanlı bağlantıyı yönetmenizi sağlar. Ancak, sunucu belleği ve işlemci gücünüzü göz önünde bulundurmalısınız.Örnek:bashKodu kopyalaMaxRequestWorkers 150 ServerLimit 200
- Timeout Ayarlarını Yapılandırın: İsteklerin maksimum yanıt süresini belirler. Yüksek trafik alan sunucularda bu süreyi optimize etmek, yanıt sürelerini iyileştirebilir.bashKodu kopyala
Timeout 30
3. Apache’nin İşlemci ve Bellek Kullanımını İyileştirme
Apache’nin kaynak kullanımı, sunucunun verimli çalışmasını doğrudan etkiler. İşlemci ve bellek kullanımını optimize etmek için şu ayarları yapabilirsiniz:
- MPM (Multi-Processing Module) Seçimi: Apache’nin işlemci kullanımını etkileyen önemli bir faktör, kullanılan MPM’dir. Apache, farklı sunucu yapılandırmaları için birkaç farklı MPM sağlar:
mpm_prefork_module
: Her istek için yeni bir işlem oluşturur. Düşük kaynakla çalışan, ancak yüksek kaynak tüketimi yapmayan siteler için uygundur.mpm_worker_module
: Her istek için yeni bir iş parçacığı oluşturur, bu da daha fazla verimli kaynak kullanımını sağlar.mpm_event_module
:worker
modelinin daha gelişmiş versiyonudur ve asenkron olayları işler.
worker
veevent
modülleridir. Performans ve kaynak kullanımı açısından daha verimli oldukları için bu modülleri tercih edebilirsiniz.mpm_event_module
‘ü etkinleştirmek için:bashKodu kopyalaLoadModule mpm_event_module modules/mod_mpm_event.so
mpm_worker_module
‘ü etkinleştirmek için:bashKodu kopyalaLoadModule mpm_worker_module modules/mod_mpm_worker.so
4. Dosya Sıkıştırmayı Etkinleştirin (GZIP)
Dosya sıkıştırma, istemcilere gönderilen içeriklerin boyutunu azaltarak daha hızlı yüklenmesini sağlar. Apache, GZIP sıkıştırma modülü ile bu işlemi yapabilir.
- mod_deflate ile GZIP Sıkıştırmasını Etkinleştirin: Apache’de GZIP sıkıştırmasını etkinleştirmek için
mod_deflate
modülünü kullanabilirsiniz:Apache yapılandırma dosyanıza şu satırı ekleyin:bashKodu kopyalaLoadModule deflate_module modules/mod_deflate.so
GZIP sıkıştırma için önerilen ayar:bashKodu kopyalaSetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/text AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/json
5. HTTP/2’yi Etkinleştirin
HTTP/2, web sayfalarını daha hızlı yüklemek için tasarlanmış yeni bir protokoldür. Apache, HTTP/2’yi destekler ve bunu etkinleştirmeniz, sayfa yükleme sürelerini önemli ölçüde iyileştirebilir.
- mod_http2 ile HTTP/2’yi Etkinleştirme:Apache’de HTTP/2’yi etkinleştirmek için şu modülü yükleyin:bashKodu kopyala
LoadModule http2_module modules/mod_http2.so
Ardından, yapılandırma dosyasına şu satırı ekleyin:bashKodu kopyalaProtocols h2 http/1.1
6. Caching (Önbellekleme) Kullanımı
Veri önbellekleme, sık erişilen verilerin bellekte saklanmasını ve sunucu yükünü azaltmasını sağlar. Apache’de mod_cache veya mod_disk_cache gibi önbellekleme modülleri ile verileri daha hızlı sunabilirsiniz.
- mod_cache ve mod_disk_cache’i Kullanma:bashKodu kopyala
LoadModule cache_module modules/mod_cache.so LoadModule disk_cache_module modules/mod_disk_cache.so
Apache’ye önbellekleme yapılandırması eklemek için şu şekilde bir yapılandırma kullanabilirsiniz:bashKodu kopyalaCacheEnable disk / CacheRoot /var/cache/apache2/mod_cache_disk
7. Sunucu Kaynaklarını İzleme ve Optimizasyon
Apache’nin performansını düzenli olarak izlemek, sürekli olarak iyileştirmeler yapmanıza yardımcı olabilir.
- Log Yönetimi: Apache logları, hataları ve performans sorunlarını takip etmek için önemlidir. Ancak, çok fazla log yazmak sunucu kaynaklarını tüketebilir. Gereksiz log yazımlarını engellemek ve log döngüsünü düzgün bir şekilde yönetmek önemlidir.
- Mod_status ve Monitörleme: Apache’nin durumunu izlemek için mod_status modülünü kullanabilirsiniz.