最近将RTMP服务器转移到Linux平台下,同时也想使用下SRS服务器。但是SRS默认只提供了CentOS 6的RPM安装包,其他平台需自己编译,同时SRS也只提供了SysV方式的服务脚本,故在systemd架构下需要自己开发相对应的脚本,以下记录下本人在CentOS 7上安装配置SRS。
编译SRS
安装SRS按照官方的办法下载源码并编译即可,暂时别安装,如下
由于github的代码clone的非常慢,改用了码云的镜像了
git clone https://git.oschina.net/winlinvip/srs.oschina.git |
如果没有安装编译器,请使用YUM安装,如下
yum install -y gcc gcc-c++ automake |
至此SRS已经编译完成,可以使用了。
配置安装
由于systemd有着sysv无法比拟的优势,虽然CentOS 7可以兼容,但是我打算采用systemd服务,因为不会直接进行 make install
安装。我打算安装到 /opt/srs
目录
mkdir /opt/srs |
日志我打算暂时先放到 /var/log
目录,编辑 SRS 配置文件 /opt/srs/conf/srs.conf
listen 1935; |
其中HTTP API如果不需要可以注释掉。
服务开发
systemd的服务文件在 /lib/systemd/system
下,命名基本都是 xxx.service
,新建一个 srs.service
文件,并输入以下内容
[Unit] |
reload详见官方WIKI https://github.com/ossrs/srs/wiki/v1_CN_Reload
开发完成之后,即可以启动服务并添加到开机启动
systemctl start srs.service |
上述命令可省略 .service
,如 systemctl status srs
日志转储
上面配置了SRS的日志记录方式为文件,还可以配置日志级别等。同时长时间运行,日志会非常大,因此需要进行日志分割转储。好在我们可以利用系统现有的日志转储分割机制进行,最简单的使用 logrotate
配合 cron
服务实现。
创建并编辑文件 /etc/logrotate.d/srs
/var/log/srs.log { |
有其他需求看查询相关配置。测试正确性可手动执行 /usr/sbin/logrotate -vf /etc/logrotate.conf
上述配置为每日转储,文件名会添加日期,类似于系统日志文件,最多转储8个文件。
注意即使手动执行了转储,每日最多一回,原因是同名文件存在,可转移后再执行