Re: Принудительный разрыв соединения

Evgeniy Berdnikov bgx на protva.ru
Пт Дек 23 22:34:00 UTC 2016


On Fri, Dec 23, 2016 at 05:13:47PM -0500, Violence wrote:
> Evgeniy Berdnikov Wrote:
> -------------------------------------------------------
> > 
> >  Поясните, какой в этом смысл. Может быть, задачу можно решить иначе.
> > -- 
> >  Eugene Berdnikov
> 
> Большое количество пользователей сайтов, которые медленно качают файлы
> 100-150мб.
> При множестве reload, nginx оставляет много процессов, которые пытаются
> мягко завершить соединения.

 Но это правильное поведение. Все варианты обрубания коннекций на уровне
 socket API выливаются в FIN или RST, что приводит к сваливанию качалок
 и в итоге к битым файлам у пользователей.

 Есть только один "нормальный" вариант обрыва соединения: блокировка всех
 исходящих пакетов, так чтобы коннекция у клиента умерла по таймауту
 (тогда качалка сделает реконнект и продолжит тянуть файл). Но этот вариант
 не реализуется через socket API, это нужно делать средствами ядра ОС,
 т.е. внешними по отношению к nginx инструментами.

> Процессов-воркеров становится слишком много и это ест дико много памяти.

 Не нужно заставлять пользователей расплачиваться за свои внутренние
 проблемы. Лучше поищите другие варианты. Например, установите
 административно политику, ограничивающую частоту релоадов nginx.
-- 
 Eugene Berdnikov


Подробная информация о списке рассылки nginx-ru