Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Ограничение числа запросов с определенных IP за промежуток в ремени
- To: nginx-ru@xxxxxxxxx
- Subject: Ограничение числа запросов с определенных IP за промежуток в ремени
- From: Антон Исайкин <isaykin@xxxxxxxxx>
- Date: Sun, 29 Mar 2009 14:49:42 +0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=dlxRBhXtgzsmNzHFNbJx6GK51spBEngvLThnSDsZFiw=; b=RsoKVajfbBuNX9DcjO6i8uuRdEIFYXp8lzCOnTcPVYtge+F4anLvUH8dudKPcN3TSO WA3UhGsChJiHwEXJYUako7X7ogIvZWht29SP5mxA5kjfsNdBP3b2fAVyzIeF+Qcgj0Wi EbqelUvhrGVjIR4EABjDkN5BSamRxLl4BziDU=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=Uley13X4+KxnUnkq4L5pPNzd6FSEu9RQALUmLld2nrJP49FWAtU38J6aHGG+OYAWG2 vC6wf2rejf+prykoNHncUD8hVDY1YoEdLlu3QmaAwLTa/MBJPUBbRdBqccHqfTYSdv6f gxqgCcfIlRHnMsv4vHCa0Hl+SaVCgVDc5Ia/Q=
Доброго дня.
Есть задача: ограничить доступ к определенным url по количеству
обращений за плавающий час. Так же необходимо иметь лист белых IP для
которых ограничение так же присутствует, но оно несоизмеримо больше.
Т.е. например условие: для любого IP разрешить не более 100 обращений
по ряду url за час, для IP из белого списка -- 1000 обращений.
Час должен быть именно плавающий, т.е. не с 14:00 до 15:00 100
запросов, а с первого запроса в течение последнего часа (текущее время
минус 3600 секунд).
Подскажите, решается ли эта задача средствами nginx?
Была идея писать лог запросов в tmpfs и парсить его с какой-то
периодичностью, складывая ключи с ответами в мемкеш. Их же проверять
уже на стороне приложения. Но хочется чего-то более нативного.
Спасибо.
--
Антон Исайкин
|