Baza wiedzy

Jak zoptymalizować stronę internetową?

Co generuje obciążenie?

Najczęściej występujące przyczyny to:

  • oprogramowanie oparte o AJAX, generujące wiele żądań HTTP (np. czat, shoutbox)
  • roboty sieciowe skanujące witrynę
  • ataki słownikowe na popularne skrypty typu WordPress, Joomla itp.
  • oprogramowanie, którego ciągłość pracy uzyskuje się przez uruchamianie skryptu co minutę (zadania Cron) - np. skrypty do zamieszczania wpisów w katalogach stron
  • systemy wymiany linków
  • kopie zapasowe (dotyczy kont o dużej zajętości powierzchni dyskowej oraz o dużej liczbie małych plików)
  • duże bazy danych
  • operacje na katalogach zawierających duże ilości małych plików

Jak zidentyfikować przyczynę?

Każdorazowo po przekroczeniu limitu obciążenia przesyłamy raport z najbardziej obciążającymi procesami. Nazwa procesu zawiera ścieżkę do pliku, który powoduje obciążenie i na tej podstawie można stwierdzić która strona WWW powoduje problem.

Warto przeanalizować plik logów żądań HTTP danej witryny. Logi są dostępne w panelu DirectAdmin:

Statystyki/Logi - Logi Apache'a - Pełne logi

Starsze logi są dostępne w katalogu:

/domains/mojadomena.pl/logs/

Najczęściej problem można stwierdzić już po pobieżnym zapoznaniem się z treścią logów, będą to powtarzające się żądania z tych samych adresów IP lub do tych samych ścieżek URL.

Jeżeli w pliku nie znajdujemy żadnych niepożądanych żądań, przyczyną jest najprawdopodobniej zasobożerność samej witryny. W takim przypadku warto ograniczyć funkcjonalność witryny np. przez wyłączenie mniej potrzebnych modułów, rozszerzeń czy wtyczek.

Wiele informacji jest także dostępnych w statystykach AwStats, które są także dostępne w panelu DirectAdmin:

Statystyki/Logi - AwStats - wszystkie miesiące (cgi)

Co zrobić, gdy najbardziej obciążającym procesem są żądania HTTP?

Należy rozpoznać przyczynę zgodnie z powyższym opisem. Jeżeli żądania dotyczą plików statycznych (obrazów, stylów, plików JavaScript i innych), warto dodać witrynę do CloudFlare.

Blokowanie robotów sieciowych/ataków słownikowych

Blokowanie robotów zostało opisane w oddzielnych artykułach: blokowanie po adresie IP, blokowanie po user-agent. Prosimy o weryfikację, czy blokowany adres IP nie pochodzi na przykład od robota Googlebot, niezbędnego dla indeksacji witryny w wyszukiwarce Google. Można tego dokonać na przykład za pomocą tego narzędzia.

Cache

Większość popularnych skryptów witryn posiada możliwość buforowania stron lub danych w celu ich szybszego wyświetlania. Czasami opcja jest dostępna standardowo (np. w podstawowej instalacji systemu Drupal) lub zapewnia ją dodatkowy moduł, wtyczka lub rozszerzenie. Uwaga, niekiedy zdarza się, że włączenie cache przynosi efekt odwrotny od zamierzonego — witryna generuje jeszcze większe obciążenie.

Moduł Mod_Security

Moduł blokuje większość ataków oraz niepożądanych robotów sieciowych. Domyślnie jest on włączony, jeżeli go Państwo wyłączyli, zalecamy ponowne włączenie oraz wyłączenie konkretnych reguł, które powodują problemy w działaniu strony.

Blokada krajów

Warto także wyłączyć obsługę witryny dla krajów, z których odwiedzający nie są naszą grupą docelową. Większość ataków na strony WWW pochodzi z krajów słabo rozwiniętych. Opcja jest dostępna w panelu DirectAdmin:

Opcje zaawansowane - Blokada krajów

Optymalizacja MySQL

Porady optymalizacyjne dotyczące bazy MySQL zostały przedstawione w oddzielnym artykule.

Oceń przydatność:


Zobacz także: