Nginx reload + Websockets

Илья Шипицин chipitsine на gmail.com
Чт Апр 8 09:49:48 UTC 2021


ну попрут и попрут. а что делать ?


насколько я понимаю, штатно предполагается в том или ином виде
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
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20210408/2edd1b50/attachment.htm>


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