略微加速

略速 - 互联网笔记

SRS集群部署实例

2020-10-12 leiting (1500阅读)

标签 运维

前言

SRS是一个简单的流媒体直播集群,一个简单的快乐。
使用SRS搭建一个集群流媒体服务器
这里使用的的服务器是1核1G的CentOS 7 系统
这里示例部署了两个源站做集群,还部署了两个边缘节点。
实际使用中,可以部署多个源站和多个边缘,形成源站集群。

获取SRS

使用git下载SRS源码:

git clone https://git.oschina.net/winlinvip/srs.oschina.git /usr/local/srs && \
cd /usr/local/srs && \
git remote set-url origin https://github.com/ossrs/srs.git

编译SRS,详细参考Build

cd /usr/local/srs/trunk && ./configure && make

源站配置文件

在192.168.0.114(源站A)上创建配置文件

mkdir /usr/local/srs/conf && \
mkdir /usr/local/srs/log && \
vim /usr/local/srs/conf/server.conf

写入如下配置:

#监听的流端口
listen              19350;
#最大的连接数
max_connections     1000;
#是否为守护进程,如果要启动在console,那么需要配置daemon off;
daemon              on;
#配置日志答应到文件(file)/控制台(config),需要和srs_log_level配合使用
srs_log_tank        file;
#制定配置文件的级别,默认级别是trace
#verbose:非常详细的日志,性能会很低,日志会非常多
#info:较为详细的日志,性能也受影响。
#trace:重要的日志,比较少
#warn:警告日志,SRS在控制台以黄色显示。若SRS运行较稳定,可以只打开这个日志
#error:错误日志,SRS在控制台以红色显示。
srs_log_level       trace;
#制定日志文件的位置.
srs_log_file        /usr/local/srs/log/srs.log;
#pid文件位置
pid                 /usr/local/srs/srs.pid;
http_api {
    enabled         on;
    listen          9090;
}
vhost __defaultVhost__ {
    cluster {
        #集群的模式,对于源站集群,值应该是local。
        mode            local;
        #是否开启源站集群
        origin_cluster  on;
        #源站集群中的其他源站的HTTP API地址
        coworkers       192.168.0.115:9090;
    }
}

在192.168.0.115(源站B)上创建配置文件,写入如下配置

#监听的流端口
listen              19350;
#最大的连接数
max_connections     1000;
#是否为守护进程,如果要启动在console,那么需要配置daemon off;
daemon              on;
#配置日志答应到文件(file)/控制台(config),需要和srs_log_level配合使用
srs_log_tank        file;
#制定配置文件的级别,默认级别是trace
#verbose:非常详细的日志,性能会很低,日志会非常多
#info:较为详细的日志,性能也受影响。
#trace:重要的日志,比较少
#warn:警告日志,SRS在控制台以黄色显示。若SRS运行较稳定,可以只打开这个日志
#error:错误日志,SRS在控制台以红色显示。
srs_log_level       trace;
#制定日志文件的位置.
srs_log_file        /usr/local/srs/log/srs.log;
#pid文件位置
pid                 /usr/local/srs/srs.pid;
http_api {
    enabled         on;
    listen          9090;
}
vhost __defaultVhost__ {
    cluster {
        #集群的模式,对于源站集群,值应该是local。
        mode            local;
        #是否开启源站集群
        origin_cluster  on;
        #源站集群中的其他源站的HTTP API地址
        coworkers       192.168.0.114:9090;
    }
}

在192.168.0.116(边缘A)上创建配置文件,写入如下配置

#监听的流端口
listen              19350;
#最大的连接数
max_connections     1000;
#是否为守护进程,如果要启动在console,那么需要配置daemon off;
daemon              on;
#配置日志答应到文件(file)/控制台(config),需要和srs_log_level配合使用
srs_log_tank        file;
#制定配置文件的级别,默认级别是trace
#verbose:非常详细的日志,性能会很低,日志会非常多
#info:较为详细的日志,性能也受影响。
#trace:重要的日志,比较少
#warn:警告日志,SRS在控制台以黄色显示。若SRS运行较稳定,可以只打开这个日志
#error:错误日志,SRS在控制台以红色显示。
srs_log_level       trace;
#制定日志文件的位置.
srs_log_file        /usr/local/srs/log/srs.log;
#pid文件位置
pid                 /usr/local/srs/srs.pid;
vhost __defaultVhost__ {
    cluster {
        #集群的模式,对于边缘集群,值应该是remote。
        mode            remote;
        #源站集群中所有源站流地址
        origin          192.168.0.114:19350 192.168.0.115:19350;
    }
}

在192.168.0.117(边缘B)上创建配置文件,写入与192.168.0.116(边缘A)一样的配置

启动SRS

在源站A、源站B、边缘A、边缘B上分别执行以下语句

/usr/local/srs/trunk/objs/srs -c /usr/local/srs/conf/server.conf

推流

这里的推流使用的是OBS,可以在官网下载

设置推流地址rtmp://192.168.0.114:19350/live/demo或者rtmp://192.168.0.115:19350/live/demo

创建媒体源,后点击开始推流

拉流

SRS拉流:http://winlinvip.github.io/srs.release/trunk/research/players/srs_player.html

输入地址rtmp://192.168.0.116:19350/live/demo或者rtmp://192.168.0.117:19350/live/demo都可以播放

不管流推到哪个源站,播放边缘的流都能从正确的源站回源取流.

网易云:https://vcloud.163.com/demo/player

输入地址rtmp://192.168.0.116:19350/live/demo或者rtmp://192.168.0.117:19350/live/demo都可以播放

不管流推到哪个源站,播放边缘的流都能从正确的源站回源取流.

https://www.novelweb.cn/archives/362


北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3