От: ПРОБЛЕМ със СУПЕРХОСТИНГ !
Здравейте,
Реших и аз да се включа, за да внеса повече яснота в конкретната ситуация.
В нашата система за мониторинг, сме забелязали вчера следобед рязко голямо увеличаване на броя конкурентни връзки. Например, ако един хостинг сървър има средно около 200-300 паралелни връзки, в един момент те са се увеличили до над 1500. Винаги в конфигурацията на уеб сървъра се задават максималния брой такива връзки (прави се от гледна точка на защита срещу претоварване). При надхвърляне на този брой, уеб сървъра спира да приема следващи връзки. В резултат на което, започват да не се зареждат сайтовете на клиентите. Един от нашите администратори поема случая, като стандартно първо прави анализ за причината за това увеличение, а тя, повярвайте ми, може да бъде най-различна. Локализирайки проблема, а именно неестествено голям брой паралелни връзки към един конкретен сайт, се проверява от къде идват те и дали това не е някаква атака към този сайт. Междувременно обаче, броят връзки продължава да се увеличава, което води до влошаване на качеството на услугата. В този случай трябва да се вземе бързо решение:
1. Дали да поемем трафика към този сайт или да се опитаме да го ограничим, като през това време се влошава качеството на услугата на всички клиенти.
2. Да спрем достъпа до сайта, което в голяма част от случаите това решава глобално случая, т.е. останалите клиенти не разбират, че има проблем, а реално засегнат е само един сайт. Решението не е лесно, като ние винаги се стремим към решение 1. В този случай се е наложило все пак да се вземе решение 2, поради огромния и ненамаляващ брой връзки към сайта.
Тъй като сме били принудени да вземем по-неприятното и за клиента, а и за нас решение. След решаването на проблема, колегата е започнал да подготвя имейл към клиента, за да е уведомен и да знае за взетите мерки. Подготвянето на едно такова писмо отнема поне 10-15 минути, като през това време клиента се е свързал с нас, при което сме му отговорили. Важно е да отбележа, че ако е възможно и ситуацията позволява, винаги първо уведомяваме клиента и му даваме време да реагира, преди да предприемем инвазивни мерки спрямо сайтовете.
Надявам се, че съм успял да опиша максимално подробно ситуация.
Относно общите ни условия за сервирането на съдържание... в интерес на истината, този член е поставен превантивно, именно, за да предпазва и клиентите, и нас при такива ситуации. Много рядко се е налага да се позоваваме на него. Причината да го има е, че за съжаление няма как един акаунт за споделен хостинг, да може да предостави такива ресурси и да може да поеме толкова потребители, колко може един много натоварен сайт. Да, понякога hotlink-инга се използва за атака и този тип атаки са много неприятни. Доста по-често, обаче, става дума за не добре разчетени и оценени ресурси за обслужване на даден трафик или брой паралелни посетители. За такива случаи има много по-подходящи решения, както са писали и колегите ми по-горе.
Защо CloudLinux не върши работа точно в този случай? CloudLinux реално създава микро виртуална среда с определени параметри за даден Linux потребител. А картинките към сайтовете, се обработват от уеб сървъра. При подобни ситуации за лимитиране на заявките към даден сайт, защитите, които могат да се направят в CloudLinux са следните:
а) максимален брой процеси за съответния потребител;
б) максимален брой паралелни връзки към уеб сървъра, които се обслужват от скриптове. (Статичното съдържание, например картинките, не влиза в тази категория);
В случая, CloudLinux не решава проблема, защото той не попада в нито една от горните 2 категории.
Има други техники, за контролиране на броя паралелни връзки, но те също са ефективни до време. Например, имаме модул за Apache, който реализира защитата. Той работи така:
Идва входяща връзка, проверява се за кой уеб сайт е тази връзка, и модулът решава дали да прекрати връзката или не. В този момент, въпреки че той ще върне например Forbidden, то е твърде късно, защото вече имаме изградена HTTP сесия и съответно зает сървърен процес, който го обслужва. Въпреки, че след това връзката се прекратява при голям брой паралелни заявки (например 2-3000/сек) проблемът си остава.
Така че, колегите, които считат, че CloudLinux е панацея, нека да не се заблуждават. Той върши перфектна работа в много случаи, но както предполагам ще се съгласите, няма 100% универсални решения.
Както съм писали и друг път, всяка такава ситуация реално води до усъвършенстване на политиката при нас. Факт е, че откакто работим, се стараем да подобряваме обслужването, в резултат на натрупването на знания. И наистина ми е неприятно, когато чета, че според някои наши клиенти не се справяме по-добре. Понякога наистина такива мнения са много субективни, но ако получим реални оплаквания по конкретни случаи, винаги ги вземаме предвид за подобряване на обслужването. Оставам на разположение, за допълнителни въпроси по темата.