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
Всегда улыбайтесь жизни и жизнь всегда улыбнется вам!
|