ngx_http_limit_req_module - не понимаю

S
На сайте с 07.11.2008
Offline
152
1394

Прописываем настройки в nginx

limit_req_zone $binary_remote_addr zone=one:10m rate=20r/s;

далее у сайтов пишем

limit_req zone=one burst=30 nodelay;

Т.е. если с одного IP первый раз пришло 50 запросов, то они отработаются, но в последующие секунды сервер будет принимать не более 20 запросов в секунду, верно?

Блокироваться запросы от плохого IP будут только для одного сайта или для всех?

zexis
На сайте с 09.08.2005
Offline
388
#1

Это зависит от того куда вы поставите

limit_req zone=one burst=30 nodelay;

В какие сайты поставите, те и будут работать с этим лимитом.

limit_req рекомендую ставить только в локейшны проксирующие на апач.

Что бы локейшены со статикой отдавались без ограничений.

Потому что на одной странице может быть много картинок.

S
На сайте с 07.11.2008
Offline
152
#2

Так в первую секунду отработает 50 запросов, а потом по 20?

Если IP в одном location превысит, то на location другого сайта блокировка не перейдет?

zexis
На сайте с 09.08.2005
Offline
388
#3

Ставить лимит 20 запросов в секунду смысла нет.

Так как он пропустит всех быстых ботов.

Лимит нужно ставить не более 1-2 запросов в секунду, что бы он был полезен.

Если лимит стоящий в одном локейшене

limit_req zone=one burst=30 nodelay;

превысится и он же будет стоять и в другом локейшене, то он будет превышен и в другом.

Как работают лимиты limit_req можно прочитать здесь

http://wbtools.ru/?forum=22

CA
На сайте с 23.10.2013
Offline
0
#4

Здравствуйте!

Работать это будет там, где прописать. Либо для всех сайтов, если в основном конфиге,

либо для определенного сайта, если внутри определенного конфига, либо вообще только на определенном location.

Лимит будет ограничивать количество обращений с одного адреса - не больше 20 в секунду, со всплесками до 30, то есть, 50 запросов никогда не обработаются, максимум 30

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий