簡單粗暴直接上步驟吧:
注 : 以下示例使用的是nginx(版本1.15.3) rtmp(版本1.2.1)
下載nginx和rtmp模塊
下載nginx
解壓
? tar xvf nginx-1.15.3.tar.gz
下載nginx rtmp模塊
解壓
? tar xvf v1.2.1
進入nginx目錄
? cd nginx-1.15.3
執行:
#--add-module 指向rtmp模塊目錄,add-module=后面可以直接使用絕對路徑
./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1
在這個過程中可能因為環境不同而出現不同錯誤,比如缺少pcre、openssl等,這時候就需要安裝這些庫。
例如查看zlib是否安裝:
dpkg -l | grep zlib
解決依賴包openssl安裝,命令:
sudo apt-get install openssl libssl-dev
解決依賴包pcre安裝,命令:
sudo apt-get install libpcre3 libpcre3-dev
解決依賴包zlib安裝,命令:
sudo apt-get install zlib1g-dev
編譯安裝nginx
執行
make && make install
過程中可能會報錯
# 注意 這里可能會報錯
# nginx-rtmp-module/ngx_rtmp_eval.c:160:17: error: this statement may fall through [-Werror=implicit-fallthrough=]
# 進入nginx 下載目錄的objs 編輯Makefile
vim objs/Makefile
# 第三行 將`-Werror` 刪掉
# 最終結果為 CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -g
# 保存 重新make
make && make install
修改nginx配置文件
編譯完成后,安裝在當前目錄的bin目錄下。
vim nginx.conf修改為:
user root;
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
#rtmp使用端口,服務器要開放該端口
listen 1935;
#名稱
application myapp {
live on;
drop_idle_publisher 5s;
}
}
}
http {
server {
#http使用端口,服務器要開放該端口
listen 8081;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
#注意下路徑
root /root/nginx-rtmp-module-1.2.1/;
}
location /control {
rtmp_control all;
}
location /rtmp-publisher {
#注意下路徑
root /root/nginx-rtmp-module-1.2.1/test;
}
location / {
#注意下路徑
root /root/nginx-rtmp-module-1.2.1/test/www;
}
}
}
關于端口
簡單提下,用到的兩個端口服務器一定要打開
端口占用檢查: lsof -i:8080
需要注意的是目錄與端口是否被占用,比如我的8080端口被占用,我改為了8081,然后需要開放端口。
啟動和訪問
配置完成后,就可以啟動nginx了
在nginx安裝目錄 執行 bin/sbin/nginx 即可啟動
bin/sbin/nginx -s stop 停止
一定要在當前目錄啟動,因為上面的配置 error_log logs/error.log debug; 會去執行命令的目錄下查找 logs。
如果error_log 改成一個絕對路徑 那就沒關系了。
在瀏覽器輸入
【IP】:8081
能訪問就表示配置完成了。