????????很多项目需要做推流服务,但是普遍都面临网络带宽的限制。此时可以配置一台服务器作为源服务器,另外多台服务器做转发,再结合DNS配置实现视频流的负载均衡。
????????本文主要记录使用Nginx配置rtmp源服务器和转发服务器的配置方法。首先假设源服务器192.168.110.110,转发服务器IP 192.168.110.112,192.168.110.113
1、源服务器配置
????????配置指令:
rtmp_auto_push?on;
rtmp?{
????server?{??
????????listen?1935;??
#推流频道名称myapp
????????application?myapp?{??
????????????live?on;??
????????}
????}??
}
2、转发服务器配置
????????配置指令:
rtmp?{??
????server?{??
????????listen?1935;??
??????? application?myapp?{??
????????????live?on;??
????????????pull?rtmp://192.168.110.110:1935/myapp; #从源服务器端口读取流
???????}
????}??
}
3、开启推流
????????以ffmpeg为例,推流指令:
ffmpeg -re -stream_loop -1 -i music.mp4 -f flv rtmp://192.168.110.110:1935/myapp
????????此时通过DNS设置,将用户的拉流请求分发给转发服务器就可以实现 rtmp 的负载均衡,解决带宽限制的问题。
4、rtmp模块添加
? ? ? ? 默认安装的nginx是不带rtmp模块的,需要手动编译覆盖安装。
? ? ? ? 详见:ubuntu已安装的nginx添加rtmp模块__老杨_的博客-CSDN博客
5、DNS服务器设置
? ? ? ? WinServer设置详见:Windows Server 2012 搭建DNS服务器__老杨_的博客-CSDN博客
? ? ? ? Linux设置详见:Ubuntu使用bind9配置DNS服务器__老杨_的博客-CSDN博客
? ? ? ? 域名解析自定义DNS服务器详见:阿里云域名解析设置自定义DNS服务器__老杨_的博客-CSDN博客
|