如何给 nginx rtmp 服务加入websocket 鉴权机制制

匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。使用nginx和nginx-rtmp-module搭建流媒体服务器-linux运维-PHP中文网QQ群微信公众号使用nginx和nginx-rtmp-module搭建流媒体服务器  之前在使用nginx和nginx-rtmp-module搭建流媒体服务器的时候遇到一个很尴尬的问题,就是在把nginx-rtmp-module模块添加到nginx中去的时候,我最开始采取的做法是先卸载原来的nginx,再下载nginx和nginx-rtmp-module的源码重新编译并安装.重装完之后我测试了一下流媒体服务器是正常的,但是接下来问题来了,由于我有一些WEB工程是部署在之前搭建好的LUMP环境下的,现在重装了nginx,这些工程需要重新部署.于是,我又开始重新部署这些WEB工程,但是结果让我哭晕在了厕所,因为nginx的目录结构发生了很大改变,导致我没办法配置原来的WEB工程了.此后我陷入了很长时间的挣扎和徘徊,网上搜寻了很多解决方案,但是这些方案大多都是侧重讲如何编译安装nginx以及进行推拉流测试,没有涉及到我这方面的问题.后来,我在浏览帖子的时候看到有人说把自己编译的nginx可执行文件替换掉原来的nginx共享库能解决问题,于是立马试了一把,结果发现真的可以!现在的nginx能同时运行流媒体服务和部署WEB工程,鱼与熊掌兼得!  下面简单介绍一下我的操作过程,希望能为遇到同样问题的你带来一些帮助(我的配置环境:Ubuntu Server 16.04 + nginx1.10.0 + nginx-rtmp-module-master).  1.先采用apt-get的方式安装nginx.目前用此方式安装的nginx的版本号为1.10.01 sudo apt-get update2 sudo apt-get install nginx  2.到你喜欢的目录下用你喜欢的名字创建一个目录,用于存放nginx和nginx-rtmp-module的源码,例如:我在根目录/softwares(softwares也是我自己创建的)下面创建了nginx目录,接下来我会把nginx和nginx-rtmp-module下载到nginx目录下.1 cd softwares/2 sudo mkdir nginx  3.进入nginx目录.1 cd nginx/  4.下载nginx源码,注意:下载的源码版本需要与步骤1安装的nginx的版本保持一致,以避免不必要的问题.获取nginx源码的途径很多,此处推荐两种方式.  方式a:在终端执行apt-get source nginx命令,直接获取到对应版本的源码.1 sudo apt-get source nginx  此方式下载完之后会自动解压,nginx-1.10.0目录即nginx源码目录.  方式b:在nginx的官网上面找到对应版本然后下载.1 sudo wget nginx.org/download/nginx-1.10.0.tar.gz  此方式下载完之后需要自己手动解压.解码命令:1 sudo tar zxvf nginx-1.10.0.tar.gz  5.下载nginx-rtmp-module的源码.1 sudo /arut/nginx-rtmp-module/archive/master.zip  因为nginx-rtmp-module已在GitHub上开源,所以也可以直接从GitHub上获取.GitHub地址:  6.解压nginx-rtmp-module源码的压缩包.1 sudo unzip master.zip  7.进入nginx源码目录.1 cd nginx-1.10.0/  8.查看当前nginx的配置信息,并将当前配置信息完整保存到一个地方,后面在编译nginx源码的时候需要依据当前的配置信息来进行配置.1 nginx -V  注意命令行中的V是大写哦,小写只能看到nginx的版本号.我当前的nginx配置信息如下:--with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads  9.配置nginx源码编译信息,将nginx-rtmp-module添加到nginx中.1 sudo ./configure --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads --add-module=../nginx-rtmp-module-master  注意,这一行命令其实是这样组成的: sudo ./configure &原来的配置信息& --add-module=../nginx-rtmp-module-master.这样就将nginx-rtmp-module添加到nginx配置里面了,同时将之前保存的nginx配置信息添加到了用于此次编译的配置信息里面,尽可能地保证了编译出来的nginx与原来的nginx功能一致.细心的同学会发现,其实我在配置nginx信息的时候并没有将原来所有的配置信息都写进去,原因是如果全部复制粘贴过去,在编译的时候会出现一些不太好处理的错误,这些错误一时半会儿还没找到好的解决方案,所以就缩减了一些配置信息,缩减之后在功能模块上并无太大差异,所以可放心使用.  10.配置完成之后,执行make命令开始编译nginx源码.编译完成之后,会在nginx源码目录的objs目录下生成nginx可执行文件.1 sudo make  11.将生成的nginx可执行文件拷贝到/usr/sbin目录下,替换原来的nginx共享库文件. 注意: 原来/usr/sbin目录有一个nginx共享库文件,我们使用编译出来的nginx可执行文件对其进行替换.1 sudo nginx /usr/sbin  12.重启nginx.1 sudo service nginx restart  13.再次查看nginx配置信息.1 nginx -V  可以看到nginx-rtmp-module模块已经添加到了nginx里面.1 --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads --add-module=../nginx-rtmp-module-master  试了试推流拉流,功能正常,再运行了一下原来的WEB工程,也正常!  最后,我说明一下为什么要先通过apt-get的方式安装nginx,再进行编译替换.原因是为了方便在LUMP环境下部署WEB工程.如果不先通过apt-get的方式安装nginx,而是直接下载源码编译安装,则nginx的配置目录会不齐全,很难去部署WEB项目(也许通过某些操作也能实现部署,但是具体怎么操作还是要花时间去研究nginx的).如果不搭建流媒体服务,我建议都通过apt-get的方式安装nginx,步骤简单又省心!以上就是使用nginx和nginx-rtmp-module搭建流媒体服务器的详细内容,更多请关注php中文网其它相关文章!共3篇752点赞收藏分享:.&猜你喜欢12345678910
PHP中文网:独家原创,永久免费的在线,php技术学习阵地!
All Rights Reserved | 皖B2-QQ群:关注微信公众号基于开源nginx-rtmp模块搭建直播系统 - linux学习,linux系统入门学习,从零开始学习linux - 马哥教育云学堂 - Powered By EduSoho分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制分享视频到站外获取收益&&手机扫码分享视频二维码2小时内有效nginx_rtmp在windows下编译及点播,直播,服务端录制的配置下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效nginx_rtmp在windows下编译及点播,直播,服务端录制的配置扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营-请使用者仔细阅读优酷、、Copyright(C)2017 优酷
版权所有不良信息举报电话:Mac上搭建nginx+rtmp直播服务器的步骤详解
投稿:daisy
字体:[ ] 类型:转载 时间:
最近的直播很火,所以这篇文章跟大家分享了在Mac上搭建nginx+rtmp直播服务器的步骤,文章通过一步步图文介绍的很详细,有需要的朋友们可以参考借鉴。
相信大家都知道nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,所以小编在网上整理了安装流程,现在分享给大家并且作备忘。有需要的朋友们可以参考学习,下面来一起看看吧。
一、安装Homebrow
已经安装了brow的可以直接跳过这一步。
ruby -e "$(curl -fsSL /Homebrew/install/master/install)"
如果已经安装过,而想要卸载:
ruby -e "$(curl -fsSL /Homebrew/install/master/uninstall)"
二、安装nginx
先glone nginx项目到本地:
brew tap homebrew/nginx
执行安装:
brew install nginx-full --with-rtmp-module
安装过程比较缓慢,耐心等待
通过操作以上步骤nginx和rtmp模块就安装好了,下面开始来配置nginx的rtmp模块
首先来看看我们的nginx安装在哪里了
brew info nginx-full
执行上面的命令后我们可以看到信息
nginx安装所在位置
/usr/local/Cellar/nginx-full/1.10.1/bin/nginx
nginx配置文件所在位置
/usr/local/etc/nginx/nginx.conf
三、运行nginx
执行命令 ,测试下是否能成功启动nginx服务
命令行如下图所示
在浏览器地址栏输入:http://localhost:8080 (直接点击)
Welcome to nginx!.03
代表nginx安装成功了
如果终端上提示
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
则表示8080
端口被占用了, 查看端口PID
lsof -i tcp:8080
kill掉占用8080端口的PID
kill 9603(这里替换成占用8080端口的PID)
然后重新执行nginx
nginx常用方法:重新加载配置文件
nginx -s reload
重新加载日志:
nginx -s reopen
// 停止 nginx
nginx -s stop
// 有序退出 nginx
nginx -s quit
四、配置rtmp
现在我们来修改nginx.conf这个配置文件,配置rtmp
复制nginx配置文件所在位置
/usr/local/etc/nginx/nginx.conf
打开Finder Shift + command + G前往,用记事本工具打开nginx.conf
在http节点后面加上rtmp配置:
listen 1935;
#直播流配置
application rtmplive {
#为 rtmp 引擎设置最大连接数。默认为 off
max_connections 1024;
application hls{
hls_path /usr/local/var/www/
hls_fragment 1s;
五、安装ffmepg工具
brew install ffmpeg
安装这个需要等一段时间等待吧 然后准备一个视频文件作为来推流,然后我们在安装一个支持rtmp协议的视频播放器,Mac下可以用VLC
显示下图表示ffmpeg安装完毕
ffmpeg安装完毕0.5
六、ffmepg 安装完成后可以开始推流了
ffmpeg -re -i 你的视频文件的绝对路径(如/Users/lideshan/Downloads/Demo.mp4) -vcodec copy -f flv rtmp://localhost:1935/zbcs/room
// 如:ffmpeg -re -i /Users/jiangys/Documents/Document/demo.mp4 -vcodec copy -f flv rtmp://localhost:1935/zbcs/room
这里zbcs是上面的配置文件中,配置的应用的路径名称;后面的room可以随便写。
推流界面:
七、验证视频
然后电脑上打开vlc这个播放器软件 点击File----&Open Network 在弹出来的框中选择Network然后输入URL:
rtmp://localhost:1935/zbcs/room
1.ffmepg命令推流的时候,提示连接失败。 [tcp @ 0x7ff] Connection to tcp://localhost:1935 failed (Connection refused), trying next address
出现这个错,是因为配置了nginx.conf后,需要重启nginx。输入命令重启后就没有问题了
nginx -s reload
2.安装完nginx后,在浏览器地址栏输入: 显示打不开网页
解决方式:由于安装后nginx服务器,有时需要等上几分钟才生效。如果还不生效,测试下是否能成功启动nginx服务,命令
具体请参考“步骤安装”第三点。
好了,到这就基本安装结束了,大家安装步骤一步步来都可以安装成功的,以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 nginx rtmp 鉴权 的文章

 

随机推荐