Hello! On Tue, Apr 16, 2013 at 12:09:09AM +0400, Валентин Бартенев wrote:
> On Monday 15 April 2013 23:56:12 Виктор Вислобоков wrote: > > Сегодня столкнулся со странной вещью > > Стоит nginx 1.2.7 > > В нём сделаны ограничения по виртуалхостам с помощью limit_conn_zone и > > limit_conn > > Всё работало идеально до сегодняшнего вечера. > > Случилась атака на сайт и смотрю в apache /server-status что куча коннектов > > к тому виртуалхосту, к которому их быть не должно согласно limit_conn > > больше 5. > > Полез разбираться в логи. > > В логах я вижу сработавшие limit_conn > > > > > > 2013/04/16 01:52:21 [error] 11652#0: *248356 limiting connections by zone > > "from_all_limit", client: 196.205.118.51, server: XXXXXX.net, request: "GET > > / HTTP/1.1", host: "XXXXXX.net", referrer: > > "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" > > > > всё бы классно, но почему тогда столько коннектов висит на апачах? > > Посмотрел ещё лог nginx, много 400-х > > Тогда возникла мысль, а не происходит ли следующее: > > > > 1. Клиент запрашивает у nginx страницу, но не дожидаясь её обрывает > > соединение > > 2. nginx передаёт запрос апачу и ждёт от него ответа, но поскольку клиент > > соединение закрыл из limit_conn оно удаляется. > > Не удаляется. Счетчик в модуле limit_conn никак не связан с клиентским > соединением. Счётчик limit_conn связан с запросом, который завершается, когда клиент закрывает соединение. > > 3. вот и получается картина, что у апача есть куча запросов, которые он > > обрабатывает, но которые уже не нужны ни nginx'У ни клиенту > > > > Поскольку я не разбираюсь в тонкостях реализации, написал сюда. Я прав, так > > всё и просиходит? > > Нет, не так. Так, так. -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
