不管是自己编译还是下载,通过前两章的讲解,媒体服务器是能跑起来了。但如何用好这个流媒体服务器?其中一个指标就是,怎么掌握服务器的运行情况!
本文的主要内容有:
1.nginx服务配置的简单介绍
2.统计模块的使用方法
一、nginx 服务配置的简单介绍
在第一讲中,对nginx配置文件conf/nginx.conf 只给出了一个最简设置,目的是让RTMP流媒体服务器跑起来,当时的配置内容是:
#将以下内容拷贝到conf/nginx.conf文件中。
#nginx进程数,建议设置为等于CPU总核心数
worker_processes 2;
#工作模式与连接数上限
events {
worker_connections 8192;
}
rtmp {
server {
listen 1935;
application myapp {
live on;
}
}
}
接下来,我简单介绍一下nginx.conf配置文件中的内容,目的是引入统计模块时对配置文件能有一个基本的认识。简单来说nginx配置文件有六个区域,它的内容和意义详见下表:
关于配置文件的介绍就要结束了,如果想要了解更多的内容,可以参考rtmp插件的官方wiki,地址是:
https://github.com/arut/nginx-rtmp-module/wiki/Directives#rtmp_stat_stylesheet
通过wiki中的Directives,你能找到更多的信息,比如要开启"rtmp_auto_push on"的原因。
二、nginx-rtmp-module的统计模块
在介绍使用方法之前,我想重申一个问题,就是统计模块存在的价值是什么?
它的存在是为了让我们掌握流媒体服务的运行情况:
- 谁在推流,分辨率是什么?帧率码率又是什么?
- 谁在播放,IP是什么?时间戳是什么?
- 整体的上下行带宽是多少?
对于这些信息,我们既可以通过控制台查看直观的数据:
也可以通过接口查到具体的详情:
1、rtmp统计模块的使用方法
引入统计模块的方法比较简单,主要是两步:
- 克隆代码,下载stat.xsl文件;
- 修改配置文件,打开stat服务;
如果对 nginx-rtmp-module 编译过程不熟悉的,可以参考第二讲。如果是下载 nginx rtmp 版的朋友,此时要做的就是获取stat.xsl文件,它就在nginx-rtmp-module模块的根目录下。
文件准备好了,在nginx.conf配置文件中打开stat服务即可。
#nginx进程数,建议设置为等于CPU总核心数
worker_processes 2;
#工作模式与连接数上限
events {
worker_connections 1024;
}
rtmp_auto_push on;
rtmp {
server {
listen 1935;
chunk_size 4096;
application myapp {
live on;
}
}
}
http {
server {
listen 8080;
server_name localhost;
# This URL provides RTMP statistics in XML
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
#注意stat.xsl文件的存放位置,支持相对路径和绝对路径。
root lib/nginx-rtmp-module/;
}
}
}
都做好之后,启动nginx,注意启动时后台有无报错。一切正常,就可以键入:
http://localhost:8080/stat
打开流媒体管理后台,查看服务的运行情况。
2、数据的价值与管理手段
统计模块提供了比较丰富的内容,比如在这种情况下:
除了流媒体服务以外,控制台还能提供推拉流的双端信息:
- 一个android推流端;
- 拉流A(10.59)一个Mac 用ffplay拉流播放;
- 拉流B(10.47)一个PC用浏览器拉流播放;
- 拉流C(10.43)一个iPhone拉流播放;
即使推流端已经下线,我们也能知道谁还在连接着媒体服务器:
丰富的数据,让我们能掌握媒体服务器的实时情况,让多种管理策略成为可能。nginx rtmp统计模块安装简单,使用方便,是控制管理的一种高效手段。