Nginx reload + Websockets

Vladislavik nginx-forum на forum.nginx.org
Чт Апр 8 07:28:25 UTC 2021


Добрый день, есть 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