Ограничение числа запросов с определенных IP за промежуток времени

Антон Исайкин isaykin at gmail.com
Sun Mar 29 14:49:42 MSD 2009


Доброго дня.

Есть задача: ограничить доступ к определенным url по количеству
обращений за плавающий час. Так же необходимо иметь лист белых IP для
которых ограничение так же присутствует, но оно несоизмеримо больше.
Т.е. например условие: для любого IP разрешить не более 100 обращений
по ряду url за час, для IP из белого списка -- 1000 обращений.
Час должен быть именно плавающий, т.е. не с 14:00 до 15:00 100
запросов, а с первого запроса в течение последнего часа (текущее время
минус 3600 секунд).

Подскажите, решается ли эта задача средствами nginx?

Была идея писать лог запросов в tmpfs и парсить его с какой-то
периодичностью, складывая ключи с ответами в мемкеш. Их же проверять
уже на стороне приложения. Но хочется чего-то более нативного.

Спасибо.

-- 
Антон Исайкин


More information about the nginx-ru mailing list