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