Nginx reload + Websockets

Илья Шипицин chipitsine на gmail.com
Чт Апр 8 10:07:35 UTC 2021


Гипотетически, немного поможет, если тайм-аут сделать побольше. По крайней
мере http ( не вебсокеты) успеют доработать и аккуратно завершиться
(убийство воркеров их рвет). То, что на дистанции 30 мин какие-то вебсокеты
умрут и переподключатся (к новым воркерам), я бы сказал, что в районе
погрешности. Сокеты очень живучи

On Thu, Apr 8, 2021, 12:56 PM Vl T <tolmachev.vlad на gmail.com> wrote:

> У ovh при реконекте 200к-300к websocket клиентов включается antiddos, и то
> время, пока он включен к серверу не могут достучаться другие сервисы. (Пока
> websocket клиенты мучают сервер подключениями - другие сервисы отваливаются
> из за antiddos) Поэтому хотелось бы плавно эти websocket переподключать
> как-то.
>
> Чт, 8 апр. 2021 г. в 12:50, Илья Шипицин <chipitsine на gmail.com>:
>
>> ну попрут и попрут. а что делать ?
>>
>>
>> насколько я понимаю, штатно предполагается в том или ином виде
>> abbrevated handshake (либо tls tickets, либо ssl sessions).
>> но гибкости в управлении этой штукой нет. можно сконфигурировать
>> персистентный на диске, тогда переживете релоад, но сессии будут вечные.
>> безопасники обычно говорят, что лучше, чтобы при релоаде сессии и тикеты
>> сбрасывались, но в этом случае вас 300к пользователей расстреляют на full
>> handshake.
>>
>> мы замеряли, Xeon держит в районе 700-1000 хендшейков в 1 сек на 1 ядро.
>> это если полные хендшейки.
>>
>>
>> кажется, было бы совсем по хорошему, чтобы сессии переживали релоад, но
>> можно было бы указать время жизни сессии. и безопасники оргазмировали бы, и
>> расстрелов на релоаде бы не было.
>>
>> если я что-то упустил, и так настроить можно, буду рад ошибиться
>>
>>
>> чт, 8 апр. 2021 г. в 14:45, Vl T <tolmachev.vlad на gmail.com>:
>>
>>> Nginx последний, 1.19.9, worker_shutdown_timeout не установлен,
>>> установить его? В принципе если установить 5 минут - то через 5 минут все
>>> 300к клиентов все равно попрут толпой на сервер?
>>>
>>> Чт, 8 апр. 2021 г. в 12:41, Илья Шипицин <chipitsine на gmail.com>:
>>>
>>>> сокеты штатно убиваются через worker_shutdown_timeout
>>>>
>>>> второй вопрос - какая у вас версия nginx ? где-то в районе 3-4 летней
>>>> давности был баг, который приводил к тому, что несмотря на указанный
>>>> worker_shutdown_timeout, воркеры все равно не останавливались
>>>>
>>>> чт, 8 апр. 2021 г. в 12:28, Vladislavik <nginx-forum на forum.nginx.org>:
>>>>
>>>>> Добрый день, есть 200k websocket соединений на проксируемый сервер,
>>>>> после
>>>>> изменения в конфиге и попытке reload nginx появляются новые процессы
>>>>> nginx и
>>>>> зависают прошлые в статусе "nginx shutting down", которые так и не
>>>>> завершаются, тк клиенты могут висеть онлайн долго, эти старые процессы
>>>>> можно
>>>>> убить kill -9 pid каждый, но в этом случае nginx продолжает в
>>>>> /nginx_status
>>>>> показывать счетчик коннектов с учетом старых соединений из убитых
>>>>> процессов
>>>>> плюс заново переподключившиеся (количество коннектов после каждого
>>>>> reload
>>>>> растет в геометрической прогрессии), хотя в работе после kill старых
>>>>> nginx
>>>>> процессов остаются только новые процессы. Полностью сбросить счетчик
>>>>> коннектов получается только через restart nginx, но в этом случае все
>>>>> websocket клиенты одновременно начинают заново стучаться на сервер,
>>>>> чего
>>>>> тоже не хотелось бы, вопрос: как мягко применять новый конфиг nginx и
>>>>> переподключать websocket соединения хотя бы пачками, а не все одним
>>>>> моментом?
>>>>>
>>>>> Posted at Nginx Forum:
>>>>> https://forum.nginx.org/read.php?21,291167,291167#msg-291167
>>>>>
>>>>> _______________________________________________
>>>>> nginx-ru mailing list
>>>>> nginx-ru на nginx.org
>>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>>>
>>>> _______________________________________________
>>>> nginx-ru mailing list
>>>> nginx-ru на nginx.org
>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>>
>>> --
>>>
>>> С уважением Толмачев Владислав.
>>> tolmachev.vlad на gmail.com
>>> skype: vladislaviki
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru на nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru на nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> --
>
> С уважением Толмачев Владислав.
> tolmachev.vlad на gmail.com
> skype: vladislaviki
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20210408/71f29ce2/attachment.htm>


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