htaccess combiner ile Apache Performance Tunning
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYXfINj8' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
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.
Bu yazılar da ilginizi çekebilir:
- mod_rewrite – .htaccess ile Bakım Sayfasına Yönlendirme
- CentOS x86_64 Sistemlerden i386 Paketlerin Kaldırılması
- Belli bir zaman aralığında değiştirilmiş dosyaların saptanması
- Arşiv (Tar, tar.gz) dosyalarının içeriğinin listelenmesi
- Linux Sistemlerde RAM Disk Oluşturulması
Yorumlar
Trackbacks
Yorumda bulunun.
Yazı için teşekkürler. Peki müşteri .htaccess dosyasında değişiklik yaptığındaki durum ne olacak?
Tüm dosyaları combine etmek yerine, .htaccess dosyası lokasyonlarını tutsa daha sağlıklı olmaz mıymış?
Teşekkürler
[Cevapla]
Selamlar,
Kombine edip, kombine edilmiş şeklini ana yapılandırma (httpd.conf ya da apache2.conf) dosyasına yazıyorsunuz. Dolayısı ile yeni bir parametre eklenmesi gerektiği zaman ana yapılandırma dosyasına eklemeniz gerekiyor. Burada amaç .htaccess kullanımını tamamen devre dışı bırakmak yani AllowOverride’in None yapılması.
[Cevapla]
Merhaba
Ana yapılandırma dosyasında nasil tutuluyor. Ornek verebilirmisiniz. Combined olan .htaccess dosyalarini nasil httpd.conf icine yazıcagiz. ?
Tesekkürler.
[Cevapla]
Doğrudan httpd.conf dosyasına ekleyebilirsiniz; ekstradan bir şey yapmanıza gerek yok.
[Cevapla]
Merhaba;
Öncelikle paylaşım için teşekkürler.
Makaleniz ile ilgili Linux kullanıcılarının düşüncelerini almak için http://forum.linuxmint.org.tr/index.php/topic,7525.new.html#new adresine yeni konu oluşturdum. Umarım aktif Linux kullanıcıları da düşüncelerini paylaşır.
[Cevapla]