Re: limit_req - алярм в почту
Илья Шипицин
chipitsine на gmail.com
Пт Окт 28 03:29:47 UTC 2011
что защищаем ? толщину канала от раздачи тяжелой статики ? или тяжелую CMS-ку ?
если CMS-ка, наверняка, она в сторону пользователя отдает куку ? и,
наверняка пользователи ходят с разных браузеров ?
пишем
set $uniq $binary_remote_addr$cookie_PHPSESSIONID$uri;
limit_req_zone $uniq zone=uniq:10m rate=1r/s;
location / {
# если уходим по proxy_pass в сторону CMS-ки, то включаем limit_req
}
как лимитировать статику - придумаете сами.
тот сценарий, который вы предлагаете - тоже можно реализовать,
выглядеть будет запутанно и не очень красиво. например, так
включаете limit_req каким-нибудь способом и пишете обработчик 503-й ошибки
error_page 503 = @notify;
location @notify {
#смотрим $upstream_status, если там 503, значит это прилетело с
апстрима, отдаем его пользователю
#если в $upstream_status пусто, значит сработал limit_req,
обрабатываем обычным образом - отправляем на proxy_pass
}
27 октября 2011 г. 16:21 пользователь maxim <maxim на della.ua> написал:
> Подскажите , возможно ли реализовать следующее.
> При превышении лимита limit_req, не блочить , а делать алярм в почту, с
> меседжем - " %ip_host limiting" .
> Ибо часто оказывается что за одним айпи который генерит большое кол-во
> запросов в единицу времени
> оказывается офис,кафе, клуб, вайфай поинт.
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
Подробная информация о списке рассылки nginx-ru