NGINX 作为 wowza 前面的热缓存用于 HLS 实时流 - 获取每个流的数据持续时间和传输的数据?

NGINX as warm cache in front of wowza for HLS live streams - Get per stream data duration and data transferred?

我已经将 NGINX 设置为 Wowza > HTTP-Origin 应用程序前面的热缓存服务器,以充当边缘服务器。该配置在支持 nDVR 和自适应流媒体支持的 HTTPS 上运行良好。我梳理了互联网以寻找示例并帮助配置 NGINX and/or 其他解决方案以提供实时统计信息(每个 stream_name 的观众数量)以及解析日志以提供每个 [=] 的流持续时间13=] 和 data_transferred 每 stream_name/session。用于 HLS 流的 NGINX 日志记录每个视频块。使用 Wowza,通过在流被销毁时从日志中读取持续时间或字节传输值来获取此数据会更容易一些......非常感谢有关此主题的任何帮助。谢谢你。

Nginx 不知道块是什么。它只是通过 HTTP 为客户端提供资源,不知道也不关心它们之间的相互关联。因此,您必须从日志中获取所需的数据。

要将客户端请求关联为一个,您需要某种方法来跟踪请求之间的状态,然后记录该状态。 Cookie 是执行此操作的常用方法。或者,您可以在请求 URI 中放置某种会话标识符,但这会损害您的缓存能力,因为每个客户端实际上都在请求不同的资源。

记录了某种会话 ID 后,您可以使用 Elastic Stack 等工具处理这些日志,以拼凑出您正在寻找的报告。

根据您的目标,您可能会发现在客户端获取数据会更好。在那里,您可以更好地了解会话实际上是什么,然后您可以记录客户端项目,例如缓冲区级别和延迟等等。 HTTP 请求并不能真正告诉您最终用户获得的体验。如果那是您想知道的,您应该使用来自客户端的日志,而不是来自您的 HTTP 服务器的日志。您的 HTTP 服务器日志对于调试底层技术基础结构问题更有用。