Доброго времени суток,
Возникла потребность в следующем функционале:
1) имеется nginx, настроенный как прокси для бэкэнда на Апаче.
2) принимаем запрос от пользователя, но не сразу же проксируется на бэкэнд, а "задерживается", а информация о запросе скидывается в некий глобальный массив
3) на основании накопленных в массиве запросов данных, скажем, за последние 5 секунд, постоянно обсчитывается статистика для каждого IP, приславшего какие-то запросы
4) если на основании статистики IP распознаётся как зловредный, то все запросы с него отбрасываются (удаляются из массива из пункта "2" и "забываются"), а сам IP заносится в чёрный список и банится. А если же адрес считается хорошим, т.е. за 5 секунд ничего противозаконного не сделал, то все накопленные запросы пробрасываются на бэкэнд, а IP запоминается как "хорошая".
Грубо говоря, имеется "мусорник", в который скидываются все входящие запросы, и если по прошествии 5 секунд адрес не сделал ничего плохого в стиле "10 х "GET /" за 2 секунды", то все запросы с адреса пробрасываются на бэкэнд, а иначе - удаляются.
Реализуемо ли это в nginx, или же подобная блокировка запросов в nginx технически невозможна?