Podziel się:

Nadmierne obciążenie serwera to częsty problem, z którym borykają się webmasterzy.

Sam niedawno z nim walczyłem. Strona kursu php  zaczęła generować obciążenie rzędu 20% procesora, podczas gdy na wszystkie moje strony mogłem używać maksymalnie 5%. Grożono mi rozwiązaniem umowy hostingowej, jeśli szybko czegoś nie wymyślę.

Dlaczego tak się dzieje?

Większość z nas utrzymuje swoje strony na hostingu współdzielonym, gdzie na jednej maszynie znajduje się wiele stron różnych użytkowników.

Gdy nasze strony strony zaczną generować zbyt wysokie obciążenie, wydajność reszty spadnie. Dostawca hostingu z pewnością zwróci się do nas o naprawę sytuacji.

Jakie mamy opcje wtedy opcje?

1. Przejście na wyższą opcję hostingu lub wykup serwera dedykowanego.

2. Przenieść strony do innej firmy.

3. Zoptymalizować nasze strony tak, by generowały znacznie mniejsze obciążenie.

Opcja nr 1 zwiększy nasze koszty kilkunastokrotnie. Opcja druga to tylko krótkotrwałe rozwiązanie, które skończy się podobną sytuacją za niedługi czas.

Warto zatem przyjrzeć się trzeciej opcji, która wydaje się najbardziej rozsądna.

Jeśli nie notujesz dziesiątek tysięcy odwiedzin dziennie, w zupełności wystarczy Ci hosting współdzielony.

U mnie było podobnie. Wszystko było dobrze do momentu, gdy kurs php był zwykłą stroną statyczną. W momencie przejścia na WordPressa, sytuacja drastycznie się zmieniła.

Co za tym stoi?

Boty. A dokładniej spam boty.

Przyznam, że nie zdawałem sobie sprawy z powagi sytuacji. Aż jednego dnia strona zajęła 40% zasobów procesora na serwerze. Po zajrzeniu w logi dostrzegłem, że w tym dni aż 93 tysiące razy wywoływano moje strony metodą POST, podczas gdy realnych wyświetleń stron miałem niespełna 2 tysiące.

Jakby tego było mało, ponad 80% wywołań pochodziło z jednego numeru IP.

Coś tu było nie tak. Byłem masakrowany przez spamujące boty, które bezlitośnie chciały dodawać nowe treści lub komentarze na stronie.

Ale dlaczego po przejściu na WordPressa? Do tego czasu byłem bezpieczny?

Stron opartych na popularnych systemach CMS jest setki milionów. Z samego WordPressa korzysta ok. 74,6 miliona stron (więcej ciekawostek o WP w języku angielskim). To jakby każdy Polak miał po dwie strony. Ta liczba jest ogromna.

Nic dziwnego zatem, że spamerzy specjalizują się w docieraniu do tych stron i atakowaniu właśnie ich. Jeden dobrze napisany bot może w mgnieniu oka zaspamować miliony źle chronionych stron opartych na WP.

Jak się przed tym bronić?

Jest kilka tricków, które zastosowałem i do których zastosowania Cię zachęcam.

1. Plik xmlrpc.php

Ten plik służy do zdalnego publikowania treści poprzez email. W moim przypadku przeżywał prawdziwe oblężenie. Nie dość, że ilość wywołać była ogromna, to jeszcze czas przetwarzania nadesłanej treści w wiadomości POST przekraczała średnio 280 ms.

W 99% przypadków Admini publikują treści w panelu admina. Dlatego warto zamknąć tę furtkę dla botów. Podmień zawartość tego pliku na:

<?php die(„Hacking attempt”); ?>

Czas przetwarzania każdego żądania tego pliku spadnie do minimum, a zasoby niemal nie odczują wywołania.

2. Wordfence plugin.

W wersji darmowej stanowi on świetną barierę przed niechcianymi botami. Skanuje obecny stan instalacji WordPress, sprawdza potencjalne aktualizacje wtyczek i szablonów oraz blokuje adresy IP.

Jeśli nie udostępniasz logowania dla użytkowników warto zaznaczyć opcję blokowania IP przy logowaniu złym loginem. Zauważyłem, że łapie się na to mnóstwo botów podających się za użytkowników „john”, „sergey”, „user” itp.

Bezwzględnie ustaw maksymalne czasy blokowania IP (domyślnie jest to 30 minut ale możesz zmienić na 60 dni). Ty raczej nie pomylisz się 5 razy z rzędu, a po co bot ma próbować za kolejne pół godziny.

3. Wtyczka Akismet i komentarze.

Domyślnie każda instalacja WP jest dystrybuowana wraz z wtyczką Akismet. To świetne narzędzie, jednak będąc bardzo spamowanym przez boty, możesz nie załapać się na darmową licencję. Np. na kursie php postanowiłem wyłączyć całkiem możliwość komentowania.

Darmowa licencja Akismet przewiduje 50 000 sprawdzeń miesięcznie, podczas gdy u mnie w jeden dzień dokonał 83 000. Z czego prawdziwymi komentarzami były cztery wpisy. Przykre, ale prawdziwe.

Nie taki SPAM BOT straszny, jak go malują.

Jaki jest końcowy efekt zastosowania tych kilku praktycznych metod?

Referencyjne obciążenie procesora spadło z ok. 22% w maju 2015 do ok. 2,8% w czerwcu 2015. Dodam, że w mojej opcji dopuszczalne jest 5%. Nic dziwnego zatem, że hostingodawca prosił mnie o pilną reakcję. Zajmowałem tyle zasobów, ile powinno wystarczyć jeszcze czterem klientom.

Teraz na szczęście oddycham spokojnie.

Jednak najważniejsze w tym wszystkim są logi. Bez logów Twoich usług pewnie nawet nie zdajesz sobie sprawy, że jesteś przytłaczany spamem. Strona działa coraz wolniej a Ty nie wiesz dlaczego.

Pamiętaj, pierwszym krokiem do jakiejkolwiek poprawy jest świadomość, co jest nie tak i gdzie szukać rozwiązania. Zamiast rozglądać się za szybszym hostingiem, lepiej poprawić działanie obecnej strony.