limit_req
Valery Kholodkov
valery+nginxru на grid.net.ru
Чт Сен 15 08:52:28 UTC 2011
----- Victor Sudakov <vas at mpeks.tomsk.su> wrote:
> Коллеги,
>
> Возьмется кто-нибудь ответить на вопросы по сабжу? Я их повторю.
> Заранее спасибо.
>
> 1. Не совсем понятно, как интерпретировать сообщения в логах. Например
>
> 2011/09/04 19:39:16 [error] 69112#0: *3786228 limiting requests, excess: 16.330 by zone "one", client: XXXXXX
>
> Что такое *3786228
Порядковый номер соединения в воркере.
> и какой физический смысл значения excess?
> >
> > Excess - это текущее количество запросов, скопившееся в "корзине".
> > Если оно больше параметра burst - запросы будут отбрасываться.
>
> Я тоже так подумал, но не понимаю, как количество запросов может быть
> дробное. Про leaky bucket algorithm прочитал, можно снова туда не
> посылать.
Это в запросах в секунду. Если получили 1 запрос и прошло 2 секунды, получим значение 0.5
> 2. Какие best practice для обычных интерактивных динамических сайтов?
> С целью не допустить DoS от роботов, но и не попортить user
> experience.
>
> > Если же один просмотр страницы пользователем выливается во много
> > обращений к динамическим ресурсам (e.g. AJAX туда, AJAX сюда, плюс
> > динимаически генерируемых картинок загрузить и т.п.), и все они
> > лимитированы - то соответственно цифры будут совсем другие.
>
> 3. О том и вопрос - какие? Как правильно их оценить и как вычислить
> (например по логу), что надо бы их подкрутить.
>
> > В любом случае я бы рекомендовал использовать "limit_req ...
> > nodelay", от задержки обычно больше вреда чем пользы (хотя и
> > существуют специфические ситуации, где она полезна).
>
> 4. Можно об этом поподробнее?
--
Regards,
Valery Kholodkov
Подробная информация о списке рассылки nginx-ru