Валентин Бартенев
July 12, 2014 08:34AM
On Saturday 12 July 2014 06:13:43 nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k wrote:
> Да, действительно странно, сегодня пробую вчерашний тест - работает как и у
> вас. Вчера тестировал на версии 1.4.x, под конец обновился, nginx
> перезапускал руками, написало [OK]. Может каким-то магическим образом не
> перезапустился.
>
> Однако попробовал включить на живом сайте - снова проблемы: в error.log-е
> вижу записи о забаненых клиентах, делаю поиск их IP в access.log-е - находит
> 20..30 записей, в то время как в ограничении указано 60r/m.
>
> Попробовал снова тестовый вариант - теперь видно, что nginx оптимизирует
> значение ограничения, и 60r/m превращаются в 1r/s.

Если у вас ограничение скорости на трассе 60км/ч, означает ли это, что нужно
ехать целый час, прежде чем будет зафиксировано нарушение?

10 r/s также не означает, что вы можете прислать 10 запросов, а потом секунду
подождать. Нет, это означает, что интервал между запросами должен быть не
меньше 100мс.

Там нет дискретности в 1 секунду или минуту, nginx не измеряет rps секундными
или минутными интервалами.

>
> Видимо для этого случая нужно использовать форму "1r/s burst=60" ?

Да это будет похоже.

> Тогда вопрос: через какое время nginx допускает повторное использование
> всплеска ? Хотя судя по всему burst - это просто размер буфера для приёма
> запросов перед обработкой.

Это не очень корректный вопрос. В nginx реализован классический
алгоритм используемый в телекоммуникации, т.н. leaky bucket и
burst в данном случае - это размер ведерка. При 1r/s burst=60 из
ведерка постоянно течет вода со скоростью 1 капля в секунду, а его
объем - 60 капель. 1 запрос добавляет 1 каплю. Перелив приводит к
срабатыванию ограничения, а параметр nodelay влияет на то, будут ли
запросы, наполнившие ведерко, обработаны сразу, или будут задержаны
до момента вытекания капли из него.

--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Не работает limit_req

nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k July 11, 2014 07:03PM

Re: Не работает limit_req

nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k July 11, 2014 07:11PM

Re: Не работает limit req

Валентин Бартенев July 11, 2014 07:28PM

Re: Не работает limit req

nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k July 12, 2014 06:13AM

Re: Не работает limit req

Валентин Бартенев July 12, 2014 08:34AM

Re: Не работает limit req

nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k July 13, 2014 08:41AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 202
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready