Windows
這里轉發一個可以一鍵運行的nginx server,通過node編寫,demo里使用grindplayer。
http://bashell.nodemedia.cn/archives/nodemedia-dev-server.html
Linux(離線環境)
下載
- 服務器受內網限制,ngnix需要的庫無法通過wget下載,提供一個所有依賴庫的離線下載鏈接。
https://github.com/arut/nginx-rtmp-module.git - 從github下載nginx-rtmp-module項目
Linux安裝nginx所需包 - 在配置過程中,多次編譯失敗,最后總結出是ngnix與依賴庫以及rtmp包之間的版本不對應,具體什么ngnix版本對應的openssl和rtmp版本,需要多次嘗試。
環境與版本
- 環境是SUSE Linux
-
zlib-1.2.8
和pcre-8.38
,來自上面csdn的鏈接 -
openssl-1.0.2j
,一開始使用openssl-fips-2.0.11,因編譯遇到提示rtmp中某c文件函數有錯,issue里有網友建議換成openssl-1.0.x版本。openssl官網 -
nginx-1.10.2
,因nginx-rtmp-module
使用的是github上最新版本,作者說支持nginx-1.10.x的規則,于是去官網下了最新stable版nginx-1.10.2。 nginx官網
配置
- 將所有文件導入同一級目錄,依次解壓
-
tar zxvf nginx-1.10.2.tar.gz
tar zxvf pcre-8.38.tar.gz
tar zxvf openssl-1.0.2j.tar.gz
tar zxvf zlib-1.2.8.tar.gz
- 進入nginx目錄,
cd nginx-1.10.2
-
./configure --prefix=user-defined/nginx --with-pcre=path/to/pcre-8.38 --with-openssl=path/to/openssl-1.0.2j --with-zlib=path/to/zlib-1.2.8 --add-module=path/to/nginx-rtmp-module-master
-prefix指定安裝目錄,--add-module添加rtmp模塊,后面跟模塊的路徑 -
make
make install
- 編譯安裝中沒有error即nginx成功安裝,cd前往安裝目錄,進入conf目錄,通過vi打開nginx.conf文件,配置nginx。這里主要添加rtmp server,如下:
rtmp {
server {
listen 1935;
application live {
live on;
}
application hls {
live on;
hls on;
hls_path temp/hls;
hls_fragment 8s;
}
}
}
修改server_name, 即訪問的ip
啟動時會提示temp/hls目錄不存在,因我項目中目前只要求rtmp,于是將hls的配置刪除
- cd進入sbin目錄,執行nginx,通過
netstat -nlp
查看對應端口是否被占用(非root用戶最好不適用8080類的端口,我改為了7070)
相關命令
- 啟動:/sbin/nginx
- 判斷配置是否正確: /sbin/nginx -t
- 重啟: /sbin/nginx -s reload