我是靠谱客的博主 冷傲冰淇淋,最近开发中收集的这篇文章主要介绍ubuntu下载安装nginx+nginx-rtmp-module下载安装包安装nginx,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ubuntu环境:nginx+rtmp下载安装搭建

  • 下载安装包
    • nginx
    • pcre
    • zlib
    • openssl
    • nginx-rtmp-module
  • 安装nginx
    • 解压压缩包
    • 安装nginx
    • 测试nginx
    • 复制文件
    • 修改nginx的参数
      • rtmp模块
      • http模块

下载安装包

nginx

Nginx是一款轻量级服务器/反向代理服务器及电子邮件代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。

wget http://nginx.org/download/nginx-1.10.3.tar.gz

pcre

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括Perl兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒。因此改用pcre来解决C语言中使用正则表达式的问题。

wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz

zlib

zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。

wget http://zlib.net/zlib-1.2.11.tar.gz

openssl

在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上

wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz

nginx-rtmp-module

RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。这个协议建立在TCP协议或者轮询HTTP协议之上,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种它有多种变种:

  • RTMP工作在TCP之上,默认使用端口1935;
  • RTMPE在RTMP的基础上增加了加密功能;
  • RTMPT封装在 HTTP请求之上,可穿透防火墙;
  • RTMPS类似RTMPT,增加了TLS/SSL的安全功能;

为了使得nginx变为支持rtmp流媒体服务器,所以需要下载nginx-rtmp-module。

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

安装nginx

解压压缩包

首先,解压四个安装包。
xxxx.tar.gz的压缩包,解压命令为:

tar -zxvf xxxx.tar,gz

xxx.zip的压缩包,解压命令为:

unzip xxxx.zip

解压完成后,你会拥有5个文件夹。名称分别为:

  • nginx
  • pcre-8.40
  • zlib-1.2.11
  • openssl-1.0.2k
  • nginx-rtmp-module-master。

以上依赖的包(pcre、openssl、zlib)不需要安装,只需要解压即可。老版本的Nginx都是要安装,但是试下来不行,make的时候会报错。

安装nginx

./configure --prefix=/xxx/你希望nginx安装在哪里,就写哪里的路径名称/xxx/nginx --with-pcre=/xxx/pcre文件夹的位置/pcre-8.40 --with-zlib=/xxx/zlib文件夹的位置/zlib-1.2.11 --with-openssl=/xxx/openssl文件夹的位置/openssl-1.0.2k  --add-module=/xxx/nginx-rtmp-module文件夹的位置/nginx-rtmp-module-master

【上面这个长长的指令就是下面这个】
./configure
–prefix=/xxx/你希望nginx安装在哪里,就写哪里的路径名称/xxx/nginx
–with-pcre=/xxx/pcre文件夹的位置/pcre-8.40
–with-zlib=/xxx/zlib文件夹的位置/zlib-1.2.11
–with-openssl=/xxx/openssl文件夹的位置/openssl-1.0.2k
–add-module=/xxx/nginx-rtmp-module文件夹的位置/nginx-rtmp-module-master

make
make install

测试nginx

cd /nginx安装的文件夹/nginx/
./sbin/nginx

如果遇到(98:address already in use),则查看端口占用情况:

sudo netstat -apn | grep 80

查看占用端口的进程:

ps -ef | grep 进程(例如:abcdef)

之后杀死进程:

sudo kill -9 abcdef

如果可以确定是Nginx自己占了端口,则可以使用

./sbin/nginx -s stop

杀死进程
在浏览器中输入:localhost,看到以下内容说明成功了。
nginx欢迎页面

复制文件

将nginx-rtmp-module-master文件夹下的stat.xsl复制到nginx文件夹

cp /你自己的地址/nginx-rtmp-module-master/stat.xsl /你自己的地址/nginx

修改nginx的参数

sudo vim /nginx的目录/conf/nginx.conf

可以参考好多网页,比如:
https://www.cnblogs.com/zx-admin/p/5783523.html
https://www.cnblogs.com/boonya/p/8022117.html
贴一份我自己的nginx.conf文件部分内容。实现的作用:

  • 支持rtmp与hls直播拉流观看
  • 一边直播一边存储

rtmp模块

# 配置RTMP模块
rtmp { 
	# server里存放服务器的实例。存放了application.
    server { 
        listen xxxx; # 监听端口为xxxx
        chunk_size 8192; # 数据块大小8192。chunk_size的默认值是4096
		
		#rtmp直播
		application liveI { # 应用名称
			live on; # 直播开启(on)
			allow publish all; # 允许所有的推流
			allow play all; # 允许所有的拉流
			
			#hls
			hls on;
			wait_key on;
			hls_path /xxx/xxx/liveI; #假设这个地址记为【地址a】
			hls_fragment 3s;
			hls_playlist_length 15s;
			hls_continuous on;
			hls_cleanup on;
			
			# 视频存储
			recorder rec1{
			record_path /xxxx/xxx/liveI; # 存储路径
			record all; # 录制所有
			record_suffix -%Y-%m-%d-%H_%M_%S.flv; # 录制文件的文件名称:年-月-日-时-分-秒
			}
        }
		
		application liveII { # 应用名称
            live on; # 直播开启(on)
			allow publish all; # 允许所有的推流
			allow play all; # 允许所有的拉流
			
			#hls
			hls on;
			wait_key on;
			hls_path /xxx/xxx/liveII;#假设这个地址记为【地址b】
			hls_fragment 3s;
			hls_playlist_length 15s;
			hls_continuous on;
			hls_cleanup on;
			
			# 视频存储
			recorder rec2{
			record_path /xxx/xxx/liveII; # 存储路径
			record all; # 录制所有
			record_suffix -%Y-%m-%d-%H_%M_%S.flv; # 录制文件的文件名称:年-月-日-时-分-秒
			}
        }

http模块

http {
    ##### 省略了前面的部分 ###
    server {
        listen       8000;
        server_name  localhost;
        #charset koi8-r;

#监控页面
	location /stat {            
		rtmp_stat all;            
		rtmp_stat_stylesheet stat.xsl;        
	} 
       
	location /stat.xsl {            
		root /nginx文件夹的位置/nginx/; 
	}

###hls 
	location /liveI {
		# Serve HLS fragments
   	    types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
        alias /xxx/xxx/liveI; #此处填写【地址a】  
 	    expires -1;
    }
		
	location /liveII {
		# Serve HLS fragments
   	    types {
			application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
        alias /xxx/xx/liveII; #此处填写【地址b】   
 	    expires -1;
    }
### 省略了后面的部分 ###
}

之后重启Nginx

./sbin/nginx -s reload

之后在网页输入localhost/stat,可看到监控页面:

nginx监控
这是一个监视页面,可以监视服务器的状态。
统计表各属性说明为:

  • clients:连接数
  • live streams:流名
  • codec:编码
  • bits:分辨率
  • size:视频画面大小
  • fps:每秒传输帧数
  • freq:音频率
  • chan:音频声道
  • State:流状态
  • Time:流活动时间

最后

以上就是冷傲冰淇淋为你收集整理的ubuntu下载安装nginx+nginx-rtmp-module下载安装包安装nginx的全部内容,希望文章能够帮你解决ubuntu下载安装nginx+nginx-rtmp-module下载安装包安装nginx所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部