Tento týden jsem předělával web 404M. Prošel radikálními změnami, které jej posunuly dál nejen vzhledově, obsahově ale i co se týká rychlosti. Pokud si dobře vzpomínám tak je to první web, kterým jsem dal v PageSpeed Insights 100/100 pro počítač a 97/100 pro mobilní zařízení. Samozřejmě to vyžadovalo hodně kompromisů a zásahů do nastavení. Celkem jsem nad tím strávil celé odpoledne. Ovšem musím do toho započítat i jednu zajímavou chybu.
Co jsem řešil
Při průběžné kontrole jsem zjistil, že se pomalu načítají nejen skripty, ale i obrázky, CSS a JavaScript. Nikdy předtím jsem se ničím podobným nesetkal. Zeleně jsou označeny i velmi malé soubory, které za normálních okolností nemohou mít problém se stahováním kvůli své velikosti.
Zkusil jsem i jiné online nástroje, které potvrdili to samé. Něco na serveru načítání brzdí. Vzhledem k tomu, že se jednalo o sdílení webhosting tak toho moc zjistit nešlo. Zpomalení navíc bylo víceméně konstantní. cca 750 – 800 ms. To bylo velice podezřelé.
Kde byl zásek
Než jsem se pustil do kontaktování zákaznické podpory, chtěl jsem provést pár dalších testů. Připravil jsem si proto skripty na nahrání na webhosting. Po připojení k FTP jsem si všiml něco podezřelého. Soubor .htaccess měl přes 430 KB. Hmm vzhledem k tomu, že ovlivňuje chování webserveru, tak právě tohle by mohl být problém.
Rychle jsem jej prolétl a vzpomněl si, proč je tak velký. Můj blog patří mezi ty starší (cca 11 let), takže je často cílem robotů a útoků, které jej přetěžují. Za normálních okolností všechen bordel blokovala IPS/IDS ochrana hostingu (ano ta slavná od Wedos opravdu funguje). Jenomže z důvodu využití HTTP2 a protože je to in, jsem přešel na HTTPS. Šifrovaný provoz už Wedos ale filtrovat neumí a postupně se to začalo projevovat. I přes nasazení bezpečnostního pluginu, whitelistování jen mé IP adresy pro adresář wp-admin jsem řešil desítky tisíc zbytečných přístupů. Proto jsem nasadil blokování celých rozsahů.
Podle logů jsem přidával další a další rozsahy až to narostlo do obludných rozměrů (430 KB), což na útoky i boty zabralo. Blogu se ulevilo, 503 se objevovaly jen výjimečně a menší zpomalení si nikdo ani nevšiml.
Odmazal jsem tedy blokované rozsahy a vše krásně zrychlilo.
Rychlost je nesrovnatelná.
Vyhodnocení
Přiznám se, že jsem netušil jak moc může .htaccess zpomalit web. Do této chvíle bych si tipnul tak jednotky ms, ale rozhodně ne vyšší stovky. Takže pokud někdy budete ladit rychlost webu, tak nezapomeňte jak velký vliv na něj může mít právě velikost a obsah .htaccess. Když už budete optimalizovat chce to projít i .htaccess.
Závěr
Po optimalizaci webu už jsem se tolik přetěžování nebál. I otravní roboti, kteří budou skákat po necachovaných stránkách už neseberou tolik prostředků, aby se objevovala 503tka. Proti útokům bude muset stačit bezpečnostní plugin. Na 404M používám místo WordFence plugin All In One WP Security. Dlouhodobě jsem měl problém s nežádoucími boty a útoky. All In One WP Security mi podle statistik vycházel lépe než WordFence.
Shodou okolností tento týden hosting také nasadil WEDOS další ochranu, která je postavená na honeypot + blokování útočníků. Ta by měla blokovat až 45 % provozu. Vzhledem k tomu, že jsem vše optimalizoval tak nemohu posoudit. Přemýšlím že bych nasadil SlimStats na sledování přístupů. Schválně by mě zajímalo kolik botů dostane ban 🙂
- Nejlepší grafické karty - Test a srovnání: 10 nejlepších grafických karet v 2020
To Wordfence ti vycházelo nějak rapidně hůř? Nemám s boty velký problém, ale hodí se to vědět pro případ potřeby. Díky
Jednoduše řešeno .htaccess není stavěný na to, aby blokoval velké množství IP adres. Čím je větší tím více to zpomaluje načítání. V mém případě to byly vyšší stovky ms. Počítám že stovky botů by v porovnání s rozsahem celé Číny asi problém nebyl 🙂