Nginx 用 RTMP統計某頻道當前用戶

你的 Nginx 已經有了 RTMP 直播功能的話,如果你還想統計某直播頻道當前觀看用戶量的話,可以加入 with-http_xslt_module 模塊。具體步驟如下:

1.查看原來的參數

/usr/local/nginx/sbin/nginx -V

輸出中可以得到原來編譯時帶有的參數

--user=nginx --group=nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-http_flv_module --with-http_perl_module --with-mail

這些參數在我們安裝新模塊時仍然有用。

2.下載 nginx-rtmp-module 安裝包

nginx-rtmp-module-master.zip,最新下載地址:https://github.com/arut/nginx-rtmp-module。

下載後將其解壓縮得到 nginx-rtmp-module-master 目錄。

3.下載 nginx-1.3.8.tar.gz 包

可以在 http://nginx.org/download/ 找你需要的版本。

下載後解壓縮得到 nginx-1.3.8 目錄。

4.關閉 nginx

ps - ef | grep nginx

在進程列表裏找到 master 進程,這是 nginx 的主進程號。

kill -TERM 主進程號

nginx 被關閉。

5.安裝其他依賴包

yum install pcre-devel

yum install openssl-devel

yum install perl-devel perl-ExtUtils-Embed

yum install gcc

yum install libxml2 libxml2-devel libxslt libxslt-devel

6.編譯 with-http_xslt_module 模塊

在步驟一得到的一系列參數後增加以下參數:

--with-http_xslt_module --add-module=/home/defonds/nginx-rtmp-module-master

其中 /home/defonds/nginx-rtmp-module-master 是步驟二得到的目錄。

切換進入步驟三得到的 nginx-1.3.8 目錄,使用新組合得到的參數列表重新配置:

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-http_flv_module --with-http_perl_module --with-mail --with-http_xslt_module --add-module=/home/defonds/nginx-rtmp-module-master

然後編譯:

make

最後替換掉原來的二進制執行文件:

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/

7.修改 nginx 配置文件

創建一個簡單地 xls 表格文件 nclients.xsl 用於提取觀看當前頻道的用戶數量,編輯其內容如下:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="html"/> 
<xsl:param name="app"/> 
<xsl:param name="name"/> 
<xsl:template match="/"> 
<xsl:value-of select="count(//application[name=$app]/live/stream[name=$name]/client[not(publishing) and flashver])"/> 
</xsl:template> 
</xsl:stylesheet>


然後將其放在一個目錄中,比如 /home/www。

修改 nginx 主配置文件 nginx.conf,添加以下內容:


location /stat { 
rtmp_stat all; 
allow 127.0.0.1; 
} 
location /nclients { 
proxy_pass http://127.0.0.1/stat; 
xslt_stylesheet /home/www/nclients.xsl app='$arg_app' name='$arg_name'; 
add_header Refresh "3; $request_uri"; 
}


8.重啓 nginx

/usr/local/nginx/sbin/nginx

No news is good news,終端沒有輸出證明啓動成功。否則參照終端給的異常信息檢查主配置文件。

根據直播頻道訪問以下地址:

http://直播服務器IP/nclients?app=app應用名&name=頻道名

有返回結果表示 with-http_xslt_module 模塊安裝成功。返回結果就是當前頻道的觀看人數。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章