NGINX отключает один клиент

Мой nginx передает поток веб-камеры из mjpeg-streamer, поэтому клиентские соединения долго зависают. В какой-то момент я хочу отключить всех клиентов, которые все еще подключены к этому потоку, оставив всех остальных клиентов нетронутыми. Я искал несколько дней, и похожая проблема описана здесь. Принятый ответ говорит

Если ваша цель — отключить одного клиента, оставив всех остальных подключенными, вам не повезло. Невозможно сделать это с помощью команд оболочки. Если ваши HTTP-соединения зависают в течение длительного времени (например, веб-сокеты), то, возможно, вы могли бы написать что-то на стороне приложения, что позволит вам закрывать соединения, которые вам не нравятся.

Я просмотрел njs (который уже использую для разных проектов) и lua. Однако я не могу найти подсказку, которая указывает мне правильное направление. Любые идеи?

ps основная проблема в том, что я защищаю местоположение nginx с правилом Open-Policy-Agent (OPA), так что только пользователи, передающие правильный url разрешен доступ к потоку. Однако, когда OPA изменяет идентификатор, пользователи могут получить доступ к потоку только при передаче нового параметра идентификатора. Однако, когда это произойдет, я хочу отключить пользователей, которые все еще подключены к потоку со старым идентификатором.

0 ответов

Другие вопросы по тегам