On Tuesday 12 April 2016 22:48:52 Peter Leonov wrote: > Вообще говоря, я понимаю с кем веду беседу, так что уже сильно сомневаюсь в > своей разумности ;) Но, раз взялся за куш… > > > On Tuesday, 12 April 2016 at 21:29, Валентин Бартенев wrote: > > […] > > > > И как с установленным SO_REUSEPORT в такой конфигурации можно не потерять > > соединений? > > Как обычно, обработать все запросы, не принимая новых, а потом закрыть свой > слушающий сокет. Или nginx забывает, что он умел SIGQUIT, когда работает в > докере с сокетом, открытым через SO_REUSEPORT?
Куда денутся новые соединения, стоящие в очереди к этому слушающему сокету, который вы собираетесь закрыть? Кто прекратит их туда добавлять? > > > > А вообще, 0-downtime деплой через reuseport очень вкусно выглядит, да. > > [..] > > > > SO_REUSEPORT в Linux не позволяет "0-downtime деплой", он вообще не для > > этого. > А и пускай не позволяет, не важно почему. Но для чего именно нужен > SO_REUSEPORT? Какая его конкретная цель? > Я уже указывал раньше в топике и давал ссылку на статью где расписаны подробности. В линуксе он служит только для повышения производительности путем распределения новых соединений по нескольким сокетам. Новые поступающие соединения попадают случайным образом на один из сокетов, открытых с опцией SO_REUSEPORT. При этом если вы закрываете один из них, то соединения, попавшие в очередь к этому сокету потеряются. -- Валентин Бартенев _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru