Htaccess'in yükleme süresi etkisi


15

Genel olarak Apache'de bir şeyleri işlemek için iki olasılık vardır:

  • htaccess dosyasını kullanarak klasörler için yapılandırmaları tek tek yapın

  • htaccess'ten tamamen istifa etmek ve tüm kuralları httpd.conf dosyasına koymak için

Htaccess kullanımı bir yükleme süresi sorunudur. Htaccess kullanımının yükleme süresi açısından ne kadar pahalı olduğunu bilmek istiyorum. Herhangi bir test var mı?

Yanıtlar:


22

Öneri Apache projesinden geçerli:

Genel olarak .htaccess dosyalarını yalnızca ana sunucu yapılandırma dosyasına erişiminiz olmadığında kullanmalısınız. ... yaygın bir yanlış anlama , kullanıcı kimlik doğrulaması ve mod_rewrite yönergelerinin .htaccessdosyalara girmesi gerektiğidir .

Bu yüzden lütfen AllowOverride Noneana httpd.conf (ve / veya sizin alt bölümlerinizde Include) ve diğer tüm direktiflerinizi ayarlayın


Apache sizinle yapılandırılmadığında , AllowOverride Noneherhangi bir .htaccessdosyanın kullanılıp kullanılmamasından bağımsız olarak zaten bir (küçük) performans cezası oluşur .

Bunun nedeni , her istek için apache'nin .htaccessistenen kaynağa giden her (alt) dizinde potansiyel bir dosyanın varlığını kontrol etmesi gerekecektir . Örneğin, / www / htdocs / example dizininden bir dosya istendiğinde, apache aşağıdaki dosyaları aramalıdır:

/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess

Bu nedenle, bu dizinden her dosya erişimi için, bu dosyalardan hiçbiri mevcut olmasa bile, 4 ek dosya sistemi erişimi vardır. (AllowOveride / için ayarlanmışsa)

Bunun için kullanılan sistem çağrısı ( man 2 stat) tek başına pahalı değildir ve gerçek IO gereksinimlerini sınırlamak yerine gerçek diski yoklamak yerine genellikle dosya sistemi önbelleği kullanılır, ancak yine de bu makalede iddia edildiği gibi eklenebilir .


Bir veya daha fazla gerçek .htaccessdosya gerçekten mevcut olduğunda, apache'nin yine de openokuması ve okuması gerekir ( dosya sistemi özniteliğini güncellemek için başka bir IO okuma işlemini ve genellikle bir IO yazma işlemini tetikler atime) ve buradaki mantık uygulanmadan önce ayrıştırır .

Yönergeleriniz httpd.conf, başlangıçta yalnızca bir kez ayrıştırmak için apache'ye ihtiyaç duyduğundan farklı olarak, başlangıçta her .htaccessdosyanın her istek için yeniden yorumlanması gerekir.

IO işlemlerine ek olarak, .htaccess dosyalarını ayrıştırma karmaşıklıklarına bağlıdır.

Bunu belirlemek için dikkatli bir kıyaslama yapılacaktır.


4

Gider, sunucunun özellikle depolama G / Ç alt sistemi ve ne kadar önbellek içerip içermediğine bağlıdır.

Test etmenin yolu, sisteminizi .htacess ile yapılandırmak ve herhangi bir web sunucusunda yaptığınız gibi yük testi yapmaktır . Ardından sistemi .htaccess olmadan yapılandırın ve aynı testleri çalıştırın.

Karşılaştırın ve sonuçlarını kontrast sizin yapılandırılmış sistemleri.


1

Sorunuz için tek bir doğru cevap olduğuna inanmıyorum. Htaccess yükleme süresini etkileyebilecek birçok değişken vardır:

  • Site klasörü yapısı: sayfa her açıldığında her klasördeki tüm .htaccess yüklenir.
  • Htaccess dosyası ne kadar sürer: 200 satır vs 3500 satır? büyük bir fark var.
  • .htaccess yapılandırması: yeniden yazma ve yönlendirme kuralları diğerlerinden daha ağır olabilir (ve yalnızca bunlar değildir).
  • İstemci tarafındaki ağ bağlantısı yükleme süresini etkileyebilir. IMO, birden fazla yerden deneyebilir ve ortalama süreyi referans gibi alabilirsiniz.
  • ab - Apache HTTP sunucusu karşılaştırma aracı size yardımcı olabilir

Daha fazla bilgi:


1

.Htaccess ile ve olmadan test ettim ve gerçekten hızda veya ek yükte hiçbir fark bulamadım. Verilen sadece 16 siteleri çalıştırmak ve süper hızlı bir sunucu yani benim durumumda milisaniye izleme neredeyse imkansız. Yüzlerce site çalıştıran bir sunucuda ek yük, @Iain'in test ettiği ve gördüğü gibi fark edilebilir.

Şahsen her şeyi sanal bir ana bilgisayar için .conf dosyasını kullanarak yapıyorum ve her şey üzerinde mutlak kontrol sağlayan .htaccess değil, daha temiz ve bir kez apache'nin belleğine yüklendi. Wordpress yeniden yazma kurallarım bile .conf dosyalarımda olduğu için asla kırılamaz.


süper hızlı ne kadar hızlı?
James Kirkby

@James Kirkby Daha sonra tam sunucu özelliklerini size ofis dışında göndereceğim. Her şeyi Proxmox kaplarında çalıştırıyorum. Web sunucumun ve 16 WordPress sitemin hepsinde Google Pagespeed'de 91-96 var ve her zaman hala ince ayar yapıyorum ve optimize ediyorum.
MitchellK

@JamesKirkby Ubuntu 14.04, Apache 2.4.7 ve PHP-FPM çalıştıran 2 x 6 Çekirdekli İşlemciye ve 64 Gb Ram'a sahiptir. Küçük bir not canavarı, performansından çok memnunum.
MitchellK
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.