ошибка в nginx ?
Andrei Nigmatulin
andrei.nigmatulin at gmail.com
Sat Jul 12 00:50:36 MSD 2008
On Saturday 12 July 2008 00:01, Gena Makhomed wrote:
> IS> Единственное, что можно делать:
> IS> ждать секунду и повторять попытку до истечения ..._connect_timeout.
>
> backlog обычно бывает переполнен при (очень) большой нагрузке,
> это сделает веб-сервера под управлением nginx на операционной
> системе с ядром Linux гораздо более уязвимыми к DDOS-атакам.
Что за чепуха. А в "не-linux" по-другому ?
> nginx будет ..._connect_timeout секунд держать tcp соединение
> с клиентом, и будет раз в секунду пытаться установить соединение
> с сервером при переполненном backlog`е - впустую растрачивая
> системные ресурсы. и workaround к этой уязвимости неизвестен.
Если бэкенд (на одной машине с nginx, ведь мы до сих пор говорим про локальные
сокеты) настолько загружен, что не успевает разгребать очередь новых
запросов, то у nginx должна быть четкая стратегия - держаться до последнего и
делать все возможное. Если он будет выдавать 502, то это значит атака
удалась. А продолжать попытки обработать запрос - это правильно, ведь в конце
концов на это есть fastcgi_connect_timeout секунд, а вдруг получится.
> IS> Пока в следующей версии EAGAIN будет сразу писаться в лог.
>
> это поможет с отладкой ситуации "somaxconn 128", но может быть
> использовано для DDOS-атаки на сервер - сначала переполняется
> backlog, потом error.log nginx`а начинает резко увеличиваться
> и занимает все свободное место на разделе где лежат логи.
> workaround - делать ротацию логов каждую минуту
Если соединение к backend не удалось, то nginx все равно что-то напишет в лог.
Не нравится - меняйте log level или включайте ротацию чаще. EAGAIN тут не
причем.
--
Andrei Nigmatulin
GPG PUB KEY 6449830D
Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take
More information about the nginx-ru
mailing list