Sinds twee dagen heb ik mijn website overgeheveld van shared hosting naar een VPS bij Leaseweb - wat dus betekent zelf de webserver opzetten en configureren - standaard LAMP-stack. Leuk! Spannend! Lekker optimaliseren met APC, MySQL instellingen, caching, headers tweaken, iedereen blij.
...totdat rond 3 of 4 uur 's ochtends Baidu langskomt
. Of tenminste, dat is de theorie - ik geloof dat op een bepaald punt er door iets teveel requests veroorzaakt wordt waardoor Apache gewoon niks meer kan leveren.
Nu heb ik Baidu een IP block gegeven - had ik al eerder gedaan, maar ik had de wildcards verkeerd gedaan. Problem solved.
Alleen nu wil ik dit soort situaties - een effectieve DOS - voorkomen in de toekomst, voor zover mogelijk. Concrete vraag, wat voor instellingen en optimalisaties kan ik nog doen - zij het in Apache, PHP, MySQL, of de hele webserver - om dit in de toekomst te voorkomen? Helpt het bijvoorbeeld als ik de maximum requesttijd omlaag schroef? (deze staat volgens mij nog op de standaard 5 minuten oid).
Zie ook een screenshot van 'top' ten tijde van de downtime; ik heb ondertussen ook mod_status ingesteld zodat Apache mij diepere informatie over actieve requests kan geven. Wat ik zelf kan zien is dat de verschillende Apache2 processen nogal lang draaien, maar ook dat het CPU gebruik en dergelijke niet al te hoog is. Komt het misschien gewoon omdat er teveel processen open staan, dat de limiet van het aantal workers te snel bereikt wordt, maar dat de spiders de pagina's zodanig langzaam downloaden dat de processen niet snel genoeg weer vrijgegeven worden?
iig, suggesties en evt. links naar resources (bij voorkeur met tekst & uitleg) - die ik zelf niet heb kunnen vinden, helaas - zijn welkom. Screenshot:
...totdat rond 3 of 4 uur 's ochtends Baidu langskomt

Nu heb ik Baidu een IP block gegeven - had ik al eerder gedaan, maar ik had de wildcards verkeerd gedaan. Problem solved.
Alleen nu wil ik dit soort situaties - een effectieve DOS - voorkomen in de toekomst, voor zover mogelijk. Concrete vraag, wat voor instellingen en optimalisaties kan ik nog doen - zij het in Apache, PHP, MySQL, of de hele webserver - om dit in de toekomst te voorkomen? Helpt het bijvoorbeeld als ik de maximum requesttijd omlaag schroef? (deze staat volgens mij nog op de standaard 5 minuten oid).
Zie ook een screenshot van 'top' ten tijde van de downtime; ik heb ondertussen ook mod_status ingesteld zodat Apache mij diepere informatie over actieve requests kan geven. Wat ik zelf kan zien is dat de verschillende Apache2 processen nogal lang draaien, maar ook dat het CPU gebruik en dergelijke niet al te hoog is. Komt het misschien gewoon omdat er teveel processen open staan, dat de limiet van het aantal workers te snel bereikt wordt, maar dat de spiders de pagina's zodanig langzaam downloaden dat de processen niet snel genoeg weer vrijgegeven worden?
iig, suggesties en evt. links naar resources (bij voorkeur met tekst & uitleg) - die ik zelf niet heb kunnen vinden, helaas - zijn welkom. Screenshot:
