由于项目需求,需要分别在厂站和集中服务器上开发nginx服务器,通过ffmpeg实现对直播数据流的推流和转推。
虚拟机安装和部署nginx参考了这篇博文,以下仅展示了自己测试时的过程截图,没有很详细的文字说明。
Linux配置
1 配置上网
测试:
至此,我们的虚拟机就可以访问互联网了。
2 配置静态ip
之前的网络配置是使用dhcp方式分配ip地址,这种方式会在系统每次联网的时候分配一个ip给我们用,也就是说有可能系统下次启动的时候ip会变,这样非常不方便我们管理。
配置静态ip首先需要打开网卡配置文件
修改启动协议 BOOTPROTO=static
手动配置ip地址
网络配置完成,可以通过SSH远程登录进行操作。
Nginx的安装
yum安装
yum -y install wget
wget http://nginx.org/download/nginx-1.22.1.tar.gz
yum install -y tar
安装rar解压
tar -zxvf nginx-1.7.8.tar.gz -C /usr/local/
(cd /usr/local)
mv(重命名) nginx-1.22.1 nginx
cd nginx
安装nginx依赖文件
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
进入usr/local/nginx重命名目录下执行
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --指定路径
编译安装
make && make install
关闭防火墙,或者添加防火墙规则(关闭防火墙瞬间,才可以访问到这个ip)
systemctl stop firewalld
开启nginx进程
/usr/local/nginx/sbin/nginx
重启或关闭进程
重启:/usr/local/nginx/sbin/nginx -s reload
停止:/usr/local/nginx/sbin/nginx -s stop
看ip地址
ip addr
部署nginx:推流需要nginx-rtmp-module模块
nginx-rtmp-module搭建流媒体服务器参考这篇博文
本地连接工具连接服务器,输入:rz
- 若未安装rz命令,先运行 yum install lrzsz
想下载nginx-rtmp-module模块,但是连不上
懒得花时间调了,曲线救国一下上传本地文件到虚拟机:
Linux解压缩zip文件到指定文件夹:
再执行
添加配置文件:
./configure –add-module=../nginx-rtmp-module –prefix=/usr/local/nginx
make
检查:
发现用的第三方模块有更改过,所以重新下载一份重装覆盖
cd /home/download
ls
unzip nginx-rtmp-module-master -d /usr/local d
cd nginx
./configure ……
make
就没有出错了
发现没有出现add-module模块,备份后覆盖就出现了:
重新链接配置文件
重启配置文件和nginx服务器
检查出现了nginx的1935端口
windows推向虚拟机的推流也成功进行
推流拉流测试截图:
配置负载均衡
集中服务器可能同时受到多个厂站的推流,需要在配置文件nginx.conf中配置负载均衡。
服务器地址:端口号 权值weight
参考以下找资料找到的几个范本
转发请求:本来访问的是nginx的欢迎页面,但是会通过权值weight的比例,分别转发到upstream上的不同页面上