说明:
已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么弄呢?

具体:这里以安装第三方nginx-rtmp-module和nginx-accesskey-2.0.3模块为例,nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so

1. 下载第三方扩展模块nginx-rtmp-module

sudo git clone https://github.com/arut/nginx-rtmp-module.git 

2. 下载第三方扩展模块nginx-accesskey-2.0.3

http://www.filewatcher.com/m/nginx-accesskey-2.0.3.tar.gz.2632-0.html   下载后解压即可

tar.gz 这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:
# tar -zcvf archive_name.tar.gz directory_to_compress
解压缩:
# tar -zxvf archive_name.tar.gz

3、最后下载的结果如下所示,git上下载的是不需用解压的,nginx-accesskey-2.0.3 下载下来需要解压的

4.cp nginx-accesskey-2.0.3 到Nginx 安装目录下去 nginx-1.8.1

修改 nginx-accesskey-2.0.3 文件下面的配置文件

vim nginx-accesskey-2.0.3/config
#修改$HTTP_ACCESSKEY_MODULE为ngx_http_accesskey_module
USE_MD5=YES
USE_SHA1=YES
ngx_addon_name=ngx_http_accesskey_module
HTTP_MODULES="$HTTP_MODULES ngx_http_accesskey_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_accesskey_module.c"

5、提示安装错误:

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

大概意思是:HTTP重写模块需要PCRE库。您可以使用--without-http_rewrite_module禁用模块选项,或将PCRE库安装到系统中,或构建PCRE库通过使用--with-pcre = <path>选项从源与nginx静态。

解决办法:

需要安装一下两个库文件:(nginx pcre 安装)

sudo apt-get install libpcre3 libpcre3-dev

apt-get install openssl libssl-dev

apt-get install git

6、在Nginx安装目录下面配置文件

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --add-module=./nginx-accesskey-2.0.3 --add-module=../nginx-rtmp-module/

注意:安装时候的两个模块是在不同的目录下面的,所以在配置文件的时候一定要记住这个文件路径必须的合适,否则安装不成功,提示一下错误:

7、编译:

make

#不要make install,否则就是覆盖安装

8、 替换nginx二进制文件:

root@iZ231gvwxe7Z:/home/www/nginx-1.8.1# cd objs/
root@iZ231gvwxe7Z:/home/www/nginx-1.8.1/objs# ls
addon autoconf.err Makefile nginx nginx.8 ngx_auto_config.h ngx_auto_headers.h ngx_modules.c ngx_modules.o src
root@iZ231gvwxe7Z:/home/www/nginx-1.8.1/objs# cp nginx /usr/local/nginx/sbin/nginx

9、 查看已经安装好的模块和重启Nginx:

www@iZ231gvwxe7Z:/tmp/hls$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.8.1
built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
built with OpenSSL 1.0.1f 6 Jan 2014
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module
--with-http_ssl_module --with-http_realip_module
--add-module=./nginx-accesskey-2.0.3
--add-module=../nginx-rtmp-module/

配置文件:

user www www;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/warn.log  warn;#pid        logs/nginx.pid;events {worker_connections  65525;
}http {include       mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}rtmp {server {listen 1935;chunk_size 4096;application live {live on;record off;exec /home/www/bin/deviceToUrlStreamName.sh $name;exec_kill_signal term;}application live360p {live on;record off;}}
}

10、 重启Nginx:

service nginx restart

11.增加一个RTMP在线统计人数模块:

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

配置 --with-http_xslt_module 时提示 the HTTP XSLT module requires the libxml2/libxslt libraries

示错误:./configure: error: the HTTP XSLT module requires the libxml2/libxslt

sudo apt-get install libxml2 libxml2-dev libxslt-dev
sudo apt-get install libgd2-xpm libgd2-xpm-dev

修改 nginx 配置文件,增加以下两个代码:

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

创建一个简单地 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>

使用HTTP请求http://myserver.com/nclients?app=myapp&name=mystream获取流订阅者的数量。 在浏览器或iframe中打开时,此编号将每3秒自动刷新一次。

重启Nginx服务:

root@iZ231gvwxe7Z:/home/www/nginx-1.8.1/objs# service nginx restart* Stopping Nginx Server...                                                                                                                                                           [fail] * Starting Nginx Server...                                                                                                                                                           [ OK ]
root@iZ231gvwxe7Z:/home/www/nginx-1.8.1/objs# 

使用OBS推流该Nginx服务器的RTMP模块既可以

例如我测试的结果:

使用VLC播放该流

测试在线观看人数结果(只有我一个人播放的,就是一个人哦!):

参考文献:

https://github.com/arut/nginx-rtmp-module/wiki/Getting-number-of-subscribers

http://blog.csdn.net/defonds/article/details/9065591

http://www.cnblogs.com/terrysun/archive/2012/11/22/2782472.html

【推荐】Nginx基础知识之————多模块(非覆盖安装、RTMP在线人数实例安装测试)相关推荐

  1. Nginx学习(一)——Nginx基础知识

    目录 1.Nginx学习(一)--Nginx基础知识 2.Nginx学习(二)--配置文件.反向代理与负载均衡 3.Nginx搭建HTTPS服务器 一.初试Nginx 一.下载安装 1.安装必要的一些 ...

  2. 游戏开发unity基础知识系列:(一)unity 2019 下载与安装

    游戏开发unity基础知识系列:(一)unity 2019 下载与安装 声明:未经作者允许,严禁商用,转载请标明出处和来源,谢谢 零.前言 本人在unity2d方面使用较多,关于unity的使用后面预 ...

  3. Nginx基础知识体系

    公众号回复'架构'获取架构师电子书及视频课程 什么是Nginx? Nginx是一个 轻量级/高性能的反向代理Web服务器,他实现非常高效的反向代理.负载平衡,他可以处理2-3万并发连接数,官方监测能支 ...

  4. 视频测试基础知识--视频算法DMOS和PPSNR--视频参考与无参考测试介绍

    视频测试基础知识--视频算法DMOS--视频参考与无参考测试介绍 测试则从传统的静态.单帧像分析,转换为动态测试.图像质量分析. 虽然单帧像分析可提供信号定时.色深.线条同步化,以及更多有用信息,但压 ...

  5. 【AWS云从业者基础知识笔记】——模块8:定价和支持

    01介绍 学习目标 Describe AWS pricing and support models. Describe the AWS Free Tier. Describe key benefits ...

  6. 【AWS云从业者基础知识笔记】——模块5:存储和数据库

    01介绍 学习目标 总结存储和数据库的基本概念. 描述Amazon Elastic Block Store (Amazon EBS)的好处. 描述Amazon Simple Storage Servi ...

  7. 一文带你了解Nginx基础知识 | 建议收藏

    目录 1. 概述 2. 历史背景 3. nginx的优点 4. 主要组成部分 5. 版本规则 6. 版本选择 7. 编译配置 8. 开始编译 9. 配置语法 10. 重载,热部署,日志切割 1. 重载 ...

  8. Nginx基础知识(个人总结)

    声明: 1. 本文为我的个人复习总结, 并非那种从零基础开始普及知识 内容详细全面, 言辞官方的文章               2. 由于是个人总结, 所以用最精简的话语来写文章           ...

  9. nginx 基础配置和常用模块

    这两天在看nginx的东西,下面是学习过程中学习到东西,贴了出来若有哪里不对请大家给予指正. 一:nginx安装: ./configure --prefix=/usr/local/nginx/  ma ...

最新文章

  1. java应用架构设计_java应用架构设计
  2. lnmp基于fastcgi实现nginx_php_mysql的分离_LNMP基于FastCGI实现Nginx,PHP,MySQL的架构分离...
  3. SVD分解.潜语义分析.PythonCode
  4. java ssl证书_Java安全教程–创建SSL连接和证书的分步指南
  5. go post请求的响应数据渲染到html模板_干货你需要了解的六种渲染模式
  6. BCS冬奥主题活动日:奥运网络安全成全球关注焦点
  7. django mysql windows_Django+MySQL配置:Windows+Centos
  8. csv 20位数据 如何打开可以预览完整数字_条码打印软件如何批量制作MSI Plessey码...
  9. 2台电脑一根网线传文件_安卓端和Mac快速连接传文件
  10. 【网络入侵检测】K均值与层次聚类分析(sklearn,scipy,手写实现)
  11. 计算几何(基础部分)
  12. 最大化 LoRa 长距离,秘籍2:接收灵敏度
  13. 从视频马赛克看编码量化参数对流控的作用
  14. iterator的用法
  15. java 纳秒 位数_java-解析少于6位的纳秒
  16. VS1005 HiRes 高清播放器方案
  17. 使用java计算数组方差和标准差
  18. C++中容器的分类以及相关用法
  19. Scala - 使用转义字符 \\ 与 | 分割字符
  20. 湖北智禾教育:淘宝店铺详情页提高转化率该怎么做

热门文章

  1. 马婕 2014MBA专硕考试 报刊选读 6(转)
  2. 【学习笔记11】动态方法调用和使用通配符定义action
  3. TransactionScope 分布式事务
  4. structs2多文件上传
  5. CodeForces - 1457E New Game Plus!(贪心)
  6. CodeForces - 856B Similar Words(AC自动机+树形dp)
  7. 中石油训练赛 - Equidistant(bfs)
  8. python鸢尾花数据集_Python实现鸢尾花数据集分类问题——使用LogisticRegression分类器...
  9. python爬虫-爬取壁纸酷主页内容
  10. 2013计算机大纲,2013计算机应用基础考试大纲