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