nginx rtmp 服务器的统计数据

nginx rtmp 服务器的统计数据

我正在尝试获取 nginx 作为 rtmp 服务器的统计信息,下面是我的配置文件,但我得到了 403http://ip:8080/stat.xsl(也尝试过http://ip/stat.xsl结果是 404,并且http://ip:8080/stat/stat.xsl这会产生一个空白页,没有错误)。

我从这里复制了这些设置:https://github.com/arut/nginx-rtmp-module

不知道哪里出了问题...

我需要找到一种方法来从 rtmp 服务器提取统计数据,或者至少找到一种获取活动连接的方法。

谢谢。

rtmp {
        server {
        listen 1935;
        chunk_size 4000;
        allow play all;

        application live {
                allow play all;
                live on;
                hls on;
                hls_nested on;
                hls_path /HLS/hls;
                hls_fragment 10s;
                record off;
                }
        }
}


http {
        include       mime.types;
        default_type  application/octet-stream;

        server {
                listen 8080;
                location /hls {
                                types {
                                        application/vnd.apple.mpegurl m3u8;
                                }
                alias /HLS/hls;
                add_header Cache-Control no-cache;
                }
                location /stat {
                        rtmp_stat all;
                        rtmp_stat_stylesheet stat.xsl;
                }
                location /stat.xsl {
                root /root/nginx-rtmp-module-dev/stat.xsl/;
                }
        }
}

更新:当我访问http://IP:8080/stat/stat.xsl我在 Chrome 控制台中看到了这一点,我认为这是相关的:Resource interpreted as Stylesheet but transferred with MIME type text/xml: http://IP:8080/stat/stat.xsl

答案1

我在 RTMP 统计数据方面也遇到了类似的问题。

首先,stat.xsl 的根位置必须是保存 stat.xsl 的目录。根位置不能是 stat.xsl 的直接路径。就我而言,我将其放在:/var/www/stat.xsl。请参阅位置/stat.xsl以下:

其次,我添加了“允许所有人”以允许任何人查看统计信息页面。我还添加了刷新标头,这将导致统计信息每三秒更新一次。

这是我的文件的内容/etc/nginx/sites_available/default

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    server_name localhost;

    location / {
            try_files $uri $uri/ =404;
            index index.html index.htm index.nginx-debian.html;
    }

    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
        # Allow access from any visitor
        allow all;
        # Live updates for the stat page
        add_header Refresh "3; $request_uri";
    }

    location /stat.xsl {
        root /var/www/;
    }
}

然后,当您访问时,http://<hostname>/stat您将看到每个配置流显示的 RTMP 统计数据。

答案2

/root/nginx-rtmp-module-dev/stat.xsl/stat.xsl然后检查 及其父目录的权限。您会发现/rootWeb 服务器无法读取它,因此会收到 403 错误。

要修复此问题,请将文件移动到适当位置,并更改 nginx 配置以匹配。

答案3

我认为问题肯定已经解决了。但是我也曾为同样的问题而苦恼,并找到了解决方案,即我们需要使用路由 URL 而不是文件名来访问统计信息。例如:example.com/stat,然后 stat 将重定向到实际页面。在那里我们可以看到包含 RTMP 统计信息的表格。

答案4

复制nginx-rtmp-stat.xsl到你的 nginx-rtmp html 文件夹。

将 stat.xsl 路径设置为 nginx-rtmp html 文件夹

location /stat.xsl {
                root /path-to-nginx-rtmp-html-folder/;
}

并转到http://yourip/stat

相关内容