1.Nginx服務(wù)器下載?????????????????wget http://nginx.org/download/nginx-1.17.5.tar.gz
? 解壓Nginx? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tar -zxvf nginx-1.17.5.tar.gz
? ***將help輸出text方便查看指令?./configure --help > nginx_configure_help.txt
? ?將生成的文件轉(zhuǎn)移到自己電腦上面方便查看 sz?nginx_configure_help.txt
2.下載Nginx RTMP模塊? ? ? ? ?wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.1.tar.gz
????解壓Nginx RTMP模塊? ? ? ? ?tar -zxvf v1.2.1.tar.gz
編譯安裝
進(jìn)入Nginx解壓目錄,執(zhí)行configure:./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1/
執(zhí)行完生成MakeFile文件
編譯:make install
編譯完生成bin目錄
bin目錄下
conf:配置相關(guān)
html:歡迎頁(yè)面,錯(cuò)誤頁(yè)面
logs:日志存放區(qū)
sbin:可執(zhí)行文件存放區(qū)
修改配置
Nginx默認(rèn)不支持rtmp,需要修改配置文件
如何修改:nginx-rtmp-module-1.2.1/test/nginx.conf
進(jìn)入bin/conf目錄,找到 nginx.conf 文件。
worker_processes 1;
error_log logs/error.log debug;
events{
????worker_connections 1024;
}
#rtmp標(biāo)簽
rtmp{
????#服務(wù)標(biāo)簽,一個(gè)rtmp服務(wù)中可以有多個(gè)server標(biāo)簽,每個(gè)標(biāo)簽可監(jiān)聽(tīng)不同端口號(hào)
????server{
????????#注意端口占用,1935為默認(rèn)端口
????????listen? 1935;
????????#應(yīng)用標(biāo)簽,一個(gè)服務(wù)標(biāo)簽中可以有多個(gè)應(yīng)用標(biāo)簽
????????application myapp{
????????????live on;
????????????#丟棄閑置5s的連接
????????????drop_idle_publisher5s;
????????????}
????????}
????}
http{
????server{
????????#注意端口占用
? ? ? ? listen? 8080;
????????#數(shù)據(jù)統(tǒng)計(jì)模塊,將流媒體的狀態(tài)記錄到 stat.xsl 中
????????location /stat{
????????????rtmp_stat all;
? ? ? ? ? ? rtmp_stat_stylesheet stat.xsl;
????????}
????????#將stat.xsl 訪(fǎng)問(wèn)目錄指定到nginx-rtmp-module中
????????location /stat.xsl{
????????????#注意目錄
????????????root /root/sun/nginx-rtmp-module-1.2.1/;
????????????}
????????????#控制器模塊,可錄制直播視頻、踢出推流/拉流用戶(hù)、重定向推流/拉流用戶(hù)
????????????location /control{
????????????????rtmp_control all;
????????????}
????????????location /rtmp-publisher{
????????????????#注意目錄
????????????????root /root/sun/nginx-rtmp-module-1.2.1/test;
????????????????}
????????????????location/{
????????????????#注意目錄
????????????????root /root/sun/nginx-rtmp-module-1.2.1/test/www;
????????????????}
????????}
}? ??
檢測(cè)端口是否被占用
lsof -i:8080 如果沒(méi)報(bào)錯(cuò)則該端口沒(méi)有被占用
啟動(dòng)服務(wù)
進(jìn)入sbin目錄嘗試執(zhí)行nginx:
$ ./nginx -t?
nginx: [alert] could not open error log file: open() "./bin/logs/error.log" failed (2: No such file or directory)
仔細(xì)看錯(cuò)誤說(shuō)明,"./bin/logs/error.log" 文件找不到?也就是當(dāng)前目錄下找不到 bin/logs/error.log。我們執(zhí)行的當(dāng)前目錄是sbin,里面只有可執(zhí)行文件nginx,當(dāng)然找不到了。所以需要到nginx根目錄下執(zhí)行。
$ ./bin/sbin/nginx -t
nginx: the configuration file ./bin/conf/nginx.conf syntax is ok
nginx: configuration file ./bin/conf/nginx.conf test is successful
測(cè)試通過(guò),可以正式執(zhí)行,啟動(dòng)服務(wù)了。
$./bin/sbin/nginx
查看nginx服務(wù)進(jìn)程。
$ ps aux|grep nginx
服務(wù)啟動(dòng)成功。
測(cè)試服務(wù)
在windows瀏覽器中通過(guò)http來(lái)訪(fǎng)問(wèn):http://xxx.xxx.xxx.xxx:8080/
報(bào)錯(cuò):403 Forbidden
其實(shí)前面我們查看nginx進(jìn)程的時(shí)候,可以發(fā)現(xiàn)master process和worker process的用戶(hù)不一致,一個(gè)是root而另一個(gè)是nobody
重新修改nginx.conf文件,添加root用戶(hù)
#設(shè)置為root用戶(hù)。
user root;
worker_processes? 1;
error_log? logs/error.log debug;
配置文件更改了,需要重新加載配置文件。
./bin/sbin/nginx -s reload
刷新瀏覽器就正常了。
停止服務(wù)
1,從容停止服務(wù)
這種方法較stop相比就比較溫和一些了,需要進(jìn)程完成當(dāng)前工作后再停止。
./bin/sbin/nginx -s quit
2,立即停止服務(wù)
這種方法比較強(qiáng)硬,無(wú)論進(jìn)程是否在工作,都直接停止進(jìn)程。
./bin/sbin/nginx -s stop
3,殺死進(jìn)程
pkill -9 nginx
直播推流測(cè)試
推流可以使用EV錄頻。
設(shè)置串流地址:rtmp://xxx.xxx.xxx.xxx/myapp/
播放可以使用EV播放器。
播放網(wǎng)絡(luò)流地址:rtmp://xxx.xxx.xxx.xxx/myapp/