On Sat, Jun 02, 2007 at 08:27:48AM +0000, Stan wrote:
> Igor Sysoev <is@...> writes:
>
> >
> > On Sat, Jun 02, 2007 at 07:05:04AM +0000, Stan wrote:
> >
> > > Наш сервер повадились атаковать. Во время атаки
> > число writing connections
> > > доходит до лимита (15К), в результате nginx ругается на то,
> > что слишком много
> > > коннектов и отвечает не на все запросы.
> > > Вопрос в следующем: как атакующие добиваются этого
> > (большого числа открытых
> > > writing коннектов) и как с этим бороться ?
> >
> > Какая ОС ?
> >
> > Нужно увеличивать worker_connection, число файлов, сокетов,
> > сетевых буферов.
> > Нужно уменьшать таймауты, размер буфера отправки.
> > Ещё можно поставить
> >
> > reset_timedout_connection on;
> >
>
> ОС: Linux, kernel 2.6.8
> В ядре вроде всё, что можно, поуменьшал:
>
> net.ipv4.tcp_synack_retries = 1
>
>
> net.ipv4.tcp_syncookies = 1
>
>
> net.ipv4.tcp_fin_timeout=25
>
>
> net.ipv4.tcp_keepalive_time=1200
>
> worker_connections сейчас стоит 8192.
8192 - это мало.
> Вообще хочется для атакующих сразу DROP в iptables делать, чтобы лишние
> ресурсы
> не расходывали. Однако, почему-то limit_zone_module не видит этого множества
> установленных коннектов и не блокирует их. Я так понимаю, эти запросы повисают
> где-то до NGX_HTTP_PREACCESS_PHASE :-/
--
Игорь Сысоев
http://sysoev.ru