ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Ограничение соеди нений с backend



Vladimir Latyshev пишет:
Предположим, нагрузка на сервис колеблется от 5 до 30 запросов в сек. Запас прочности к примеру 100. Если выше - поднимается la и сервера уходят в думку, а клиенты - в ожидание. Последствия баннерной рекламы в соцсетях могут превысить все ожидания. DOS атаки тоже никто не отменял. При длительности в несколько часов времени среагировать другими способами может не оказаться.
Вот и хотим пойти путем наименьшего зла.
Короче говоря, речь не о штатной нагрузке а о всплесках, которые весьма вероятны. Закладываться на них горизонтальным масштабированием - дорого.

Защита от перегрузок это отдельная песня.
Я думаю, стоит определиться с характером запросов и выделять агрессивных клиентов. Желательно банить таких на основе фаервольных фильтров --connlimit-above 15 -j REJECT || source-track rule (pf) Возможно, conn_limit для $remote_addr$http_user_agent, чтобы кто-то избыточно агресивно не нагружал бекенд

Против мелко-средних DDoS, которые не забивают полностью канал, ничего лучше скриптов вроде еще не придумали. Т.е. получается мониторинг + трезвый админ + скрипты. Ботов в фаерволл.

Все остальное будут условно нормальные юзера.
При этом, nginx получает максимально быстро ответ от бекенда и уже сам обслуживает медленных клиентов. Если число ликвидных пользователей превысит число свободных чаилдов бекенда (апача), то вы будете получать ваше
error_page  503 =200 /sorry.html;


Чем проще - тем лучше!



16 июня 2009 г. 17:02 пользователь Sergej Kandyla <sk.paix@xxxxxxxxx <mailto:sk.paix@xxxxxxxxx>> написал:

    Vladimir Latyshev пишет:

        Представляю прекрасно. Если при большой нагрузке запрос
        выполняется 1 секунду, то 100 апачей, о которых я писал - это
        100 запросов в секунду. Да, это много, но не настолько, чтобы
        говорить, что такого не бывает ;) А соломку надо стелить заранее.


    подготовка - это хорошо ;)
    Но, есть такая индейская пословица:  "Лошадь сдохла - слезь"

    Если бекенд подает симптомы к умиранию, то его и нужно
    оптимизировать, кешировать, маштабировать.
    Попытка скрыть от клиентов service degradation - это все равно что
    попытка оживить дохлую лошадь.

    В конце концов о каких медленных клиентах шел разговор, если их
    обслуживает nginx ?


--
Best wishes, Sergej Kandyla
Всегда улыбайтесь жизни и жизнь всегда улыбнется вам!




 




Copyright © Lexa Software, 1996-2009.