limit_req - feature request?

Sergej Kandyla sk.paix на gmail.com
Пт Июн 18 18:46:53 MSD 2010


vgoncharov wrote:
> Добрый день!
>
> Недавно мне тут на форуме понятно
> объяснили как работает limit_req_zone
> http://forum.nginx.org/read.php?21,92320,92320#msg-92320
>
> Теперь непонятно как это применять.
>
> Меня напрягают боты, которые сканируют
> *.php на различные уязвимости.
> С ними у меня хорошо справляется fail2ban.
> Но он смотрит логи только 1 раз в
> секунду, а сервер быстрый, конал
> толстый, 50 плохих запросов такие боты
> легко могут пропихнуть перед тем как их
> заблокирует fail2ban.
>   

в чем смысл усложнять себе жизнь?
нагрузки боты не создают, т.к. будут получать 404,
можно даже и не банить - дело вкуса.

все это исключительно ваше желание а не обьективная необходимость.





> У меня генерируется html со ссылками на
> картинки . 
>
> Ну поставил на location "/" ограничение 1r/s с
> burst 20 и nodelay. Это уже бестолково, так как
> 20 запросов за первую секунду пролазят
> легко. Или 21?
>
> Но тут выяснилось, что на странице
> может располагаться до 500 картинок.
> Писать burst 500? А зачем тогда такое
> ограничение нужно?
>
> Правильно ли я понял, что для разумного
> использования этого ограничения мне
> мало написать
> location / {
>   proxy_pass ...;
>   ...
>   ...много всяких параметров...
>   ...
> }
>
> Сейчас мне нужно описывать много
> вссяких location, повторять в каждом
> "...много всяких параметров..." и так
> делать индевидуально для всего
> имеющегося зоопарка серверов, чтобы
> уже в каждом location указывать разные
> ограничения. Это слишком муторно.
>
> Можно ли сказать, чтобы какие-то
> запросы не учитывались при подсчете
> скорости? Например "Не считать запросы,
> на которые ответ с Content-Type: image/*"
>
> Или наоборот, считать только те
> запросы, у которых URI содержит \.php
>
> Как-то можно это сделать не выделяя
> кучу location'ов и указанием "этот location не
> ограничиваем", "этот location ограничиваем
> так-то"?
>
> Самое удобное было бы, чтобы я смог
> прописать в секции http что-то такое:
>
> http {
>   # ограничим тяжелые php и cgi скрипты
>   limit_req_zone $binary_remote_addr zone=slow:10m rate=4r/s;
>   limit_req zone=slow burst=2 nodelay "\.php";
>   limit_req zone=slow burst=2 nodelay "\.cgi";
>
>   # ограничим все остальное
>   limit_req_zone $binary_remote_addr zone=fast:10m rate=10r/s;
>   limit_req zone=fast burst=100 nodelay "\.";
>
> server (
>   ...
> )
> server (
>   ...
> )
> ... много других серверов ...
> }
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,99889,99889#msg-99889
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>   




Подробная информация о списке рассылки nginx-ru