我在系统中使用 NGINX 作为组件,它接受来自客户端的流式内容(比如说通过 RTMP)并将其传递给某个内部服务进行处理。内部服务通过 HTTP 从 NGINX 获取内容。
但我不想等到客户端完全流式传输所有内容后才开始处理,所以我希望内部服务在第一个字节可用时立即开始获取内容 - 问题是如果客户端流式传输的速度比内部服务从 NGINX 拉取的速度慢(情况总是如此),NGINX 就会到达当前文件的末尾并停止提供内容。
有没有办法让 NGINX 开始提供最终大小未知的文件(显然使用 Transfer-Encoding: chunked)并且在发送完所有(尚未提供的)数据之前不终止连接?
我尝试过提供 FIFO 的内容,但 NGINX 只是忽略了返回 404 Not Found 的 FIFO。我也查看了 NGINX HLS 模块,但它似乎要求文件采用 MPEG-4 格式,这不适用于我的用例。