我的 nginx 正在从 mjpeg-streamer 传递一个网络摄像头流,因此客户端连接会挂起很长时间。在某些时候,我想断开所有仍与该流连接的客户端,而使所有其他客户端保持不变。我已经搜索了几天,这里描述了一个类似的问题。接受的答案说
如果您的目标是断开一个客户端的连接,同时让所有其他客户端保持连接,那么您就不走运了。没有办法用 shell 命令来做到这一点。如果你的 HTTP 连接挂了很长时间(例如 Websockets),那么你可以在应用程序端写一些东西来关闭你不喜欢的连接。
我浏览了 njs(我已经将其用于不同的项目)和 lua。但是,我找不到指向正确方向的提示。有任何想法吗?
ps 根本问题是我正在/mjpeg
使用开放策略代理 (OPA) 规则保护 nginx 位置,因此只有传递正确?userid=<long-id-string>
url 参数的用户才能访问流。但是,当 OPA 更改 id 时,用户只能在传递新的 id 参数时访问流。但是,当这种情况发生时,我想断开仍连接到具有旧 ID 的流的用户。