htaccess combiner ile Apache Performance Tunning

Apache üzerinde performansa direk etkisi olan en önemli konulardan birisi de “AllowOverride” direktifi ile devreye alınan htaccess kullanımıdır. Directory ya da vhost bazlı yapılandırma işlerinde oldukça kolaylık sağlayan bir özellik olmasına rağmen, bilindiği gibi AllowOverride direktifi None dışındaki bir değere set edildiğinde, apache kök dizini ve tüm alt dizinlerde .htaccess dosyası arayıp genel yapılandırmayı override edecek herhangi bir yapılandırma direktifi olup olmadığını kontrol eder. Özellikle çok sayıda alt dizinden oluşan bir klasör yapısı olan durumlarda performansa doğrudan etkisi olur.

Yukarıda bahsettiğim bu nedenden ötürü apache ile ilgili performans tavsiyelerinde mümkünse htaccess kullanımından tamamen kaçınılması, bunun yerine .htaccess içerisinde tanımlanması gereken direktifleri doğrudan ana yapılandırma dosyasında Directory blokları içerisinde belirtilmesi  önerilmektedir. Elbette ana yapılandırma dosyalarına erişemeyen vhost sahipleri için AllowOverride direktifini kullanmanız elzem olabilir ancak böyle bir ihtiyaç yoksa bu direktifi None yapabilir ve  apache’nin bahsi geçen .htaccess arama işi ile uğraşmasının önüne geçebilirsiniz.

 Yazının başlığında bahsettiğim htacess combiner da sunucunuzda halihazırda htaccess dosyaları olması durumunda (örnek olarak birden çok wordpress, drupal vs. gibi cms yayınlanıyorsa), tüm htaccess içeriklerini okuyarak hepsini kombine eden ve ana yapılandırma dosyanıza (httpd.conf vs.) ekleyebileceğiniz hale getiren bir shell script. https://gist.github.com/colinmollenhour/459311 adresinde yayınlanan bu scripti web sunucunuzun en üst dizininde çalıştırdığınızda aynı dizinde .htaccess-combined isimli bir dosya oluşturarak sunucudaki tüm .htaccess dosyalarının içeriğini doğru syntax ile bu dosyaya yazıyor. Bahsi geçen bu içeriği ana yapılandırma dosyanıza ekleyip, AllowOverride direktifini de None yaparsanız (apache restart sonrası) sunucu üzerinden yük almış oluyorsunuz.