NFsec Logo

Konfiguracja serwera Apache względem .htaccess, a jego wydajność

18/03/2012 w Administracja 1 komentarz.  (artykuł nr 340, ilość słów: 313)

W

iększość współdzielonych konfiguracji hostingowych zezwala na używanie plików .htaccess w określonych ścieżkach, gdzie przetrzymywane są strony klientów. Tyczy się to również konfiguracji przewidzianych dla dedykowanych projektów. Jak wynika z obserwacji Dawida Golunskiego przeniesienie konfiguracji z plików .htaccess (i tym samym ominięcia konieczności ich używania) do plików konfiguracyjnych hostów wirtualnych może przynieść zwiększenie wydajności serwera WWW do około 6.6% (w zależności od środowiska testowego i produkcyjnego wartość ta może być mniejsza lub większa).

Dodatkowe testy przeprowadził Mark Sutton, w których została zawarta zależność – ilość podkatalogów z włączonym i wyłączonym plikiem .htaccess, a ilość żądań na sekundę i czas odpowiedzi serwera. Jak się okazuje konfiguracja z wyłączoną obsługą plików .htaccess dla katalogów, z których była pobierana treść przez serwer Apache dała mierzalną różnicę w wydajności serwera. W dodatku im drzewo katalogów było bardziej rozbudowane – tym wydajność była bardziej zauważalna. Dlatego rekursywne włączenie obsługi plików .htaccess od poziomu głównego katalogu w “dół” potrafi poważnie wpłynąć na wydajność serwera szczególnie, jeśli katalogi nie są umieszczone na lokalnym dysku tylko udostępnione przez sieciowy system plików.

Najlepszym wyjściem z tej sytuacji jest ustawienie AllowOverride na None dla DocumentRoot i zawarcie wszystkich reguł z plików .htaccess (najczęściej są to reguły z modułu mod_rewrite) w konfiguracji VirtualHost. Niestety w przypadku hostingu współdzielonego, gdzie żaden klient nie ma dostępu do konfiguracji swojej strony, pliki .htaccess są nieuniknione. W tym przypadku możemy włączyć obsługę plików .htaccess tylko dla głównych katalogów WWW naszych klientów i ją dezaktywować dla wszystkich podkatalogów. Na przykład, jeśli struktura naszego drzewa stron WWW ma postać: /home/klient/www możemy to wykonać konfiguracją:

<Directory /home/*/www>
   AllowOverride All
</Directory>

<Directory /home/*/www/*>
   AllowOverride None
</Directory>

Więcej informacji: Apache Performance Tuning

Kategorie K a t e g o r i e : Administracja

Tagi T a g i : , , , , ,

1 komentarz.

  1. To samo tyczy się używania bezpieczniejszego wariantu FollowSymLinks, czyli SymLinksIfOwnerMatch.