安装宝塔
代码登录后可见
这个命令是宝塔针对UBUNTU系统一键安装的命令行,一键搞定,完成之后会显示宝塔链接和账号密码,随后我们需要,我们继续往下面看。
进入宝塔安装环境
进入宝塔界面之后,无需安装任何关于PHP和MYSQL的环境,自动弹出来的推荐安装全部关闭。只需要安装三个环境,如图所示:
只需安装软件管理->运行环境里边的NGINX、mongodb和pm2这几个即可。
三个都点击安装,可以选择编译安装和快速安装,这个随你喜欢,随后就是等待其安装完成。
配置mongodb
配置mongodb设置认证访问和开启远程访问,方便调用服务器直接链接远程数据库进行管理。
代码登录后可见
这里是设置了db1数据的权限访问,创建了用户dbuser和密码dbpassword,权限是读写权限。
进入/www/server/mongodb文件夹
代码登录后可见
找到bindIp: 127.0.0.1,把127.0.0.1更改成0.0.0.0。
找到authorization: disabled 修改成 enabled
然后重启mongdob服务。
更改绑定ip是为了将mongodb设置成远程服务,可以在调用服务器进行远程链接数据库。
更改认证为允许,是为了增加安全性。
安装ffmpeg
代码登录后可见
上面是ubuntu安装ffmpeg的步骤,非常简单,安装完成之后输入FFMPEG即可查看到效果。
克隆云转码源码
进入到wwwroot文件夹,然后将原来克隆到服务器上面。
代码登录后可见
配置安全认证文件
进入到express-ffmpeg文件夹后创建config文件夹,然后再在里边创建auth.js文件。
代码登录后可见
输入以下认证信息
代码登录后可见
user和password是登陆云转码后台所需账号密码。
db是刚才创建的数据库,dbuser是数据库认证账号,dbpassword是数据库认证密码。
secret是session所需加密secret。
开启云转码应用
进入到express-ffmpeg目录,然后使用pm2多线程启动应用
代码登录后可见
到现在云转码就已经搭建完成了,可以通过IP:3000访问到云转码,如果需要绑定域名,可以通过宝塔安装的NGINX进行站点反向代理设置,这里就不赘述了。
结果
最终两台云转码和两台调用服务器就都安装了云转码系统,这里边不同的是调用服务器不用安装mongodb,而云转码那两台服务器需要安装mongodb数据库,并且开启远程访问。
Rsync+Inotify同步配置
Rsync+Inotify文件同步配置,是为了将云转码里边的切片内容单向同步到提供调用服务的服务器上面去,并且监听云转码切片内容的变化,如果发生变化就将变化的文件单向同步到调用服务器上。
这里只讲解一台云转码和一个调用服务器的配置过程,另外一个云转码和调用服务器的配置过程是相同的。
首先我们要弄清楚,云转码和调用服务器哪一台是rsync服务端,等待连接的一方即是rsync服务端,rsync服务端的意思是–deamon启动rsync,在后台监听连接。
所以调用服务器已经是rsync服务端,它一直在监听云转码的连接请求,如果云转码发起同步请求,则调用服务器会响应请求,同步过程就发生了。
搭建rsync服务端
192.168.1.3和192.169.1.4需要搭建rsync服务端,原因如上所述,不再赘述。在Ubuntu里边rsync是默认安装,所以我们不需要再次安装。
代码登录后可见
设置rsyncd.conf配置文件
代码登录后可见
下面是配置文件内容
代码登录后可见
主要需要注意的是hosts allow是允许哪一个IP发起同步请求,这样安全性很高。
auth users是设置认证用户,后面配置192.168.1.1需要使用,还有/etc/yunzhuanma.secrets储存的是认证密码。
设置yunzhuanma.secrets
代码登录后可见
这里需要注意的是,在RSYNC服务端的secrets里边的格式是 user:pass,如果不这样设置,后面可能会无法同步。
设置yunzhuanma.secrets的权限
代码登录后可见
别问为什么,必须600权限。
启动RSYNC服务
使用service启动,即可启动RSYNC服务。
代码登录后可见
配置云转码服务器的Rsync+Inotify
配置Rsync+Inotify的目的是监听切片文件夹的文件改动,如果发生了改动,则立刻进行同步操作。
安装inotify
代码登录后可见
编写监听脚本
代码登录后可见
下面是我使用的脚本
代码登录后可见
这个脚本的目的是监听切片文件夹的内容变化,也就是/www/wwwroot/express-ffmpeg/public/videos里边的任何变化,删除、修改、创建等就会发起同步请求到192.168.1.2调用服务器,192.168.1.2接收到同步请求,就会开始同步操作。
设置同步密码文件password-file
代码登录后可见
输入同步密码:password,注意这里跟服务端RSYNC是不同的,服务端RSYNC的密码文件里边储存的是用户名和密码的键值对:yunzhuanma:password,跟这里是不一样的,千万别搞错了。
设置600权限,必须设置,不然报错。
代码登录后可见
最后给予脚本执行权限,并且测试执行。
代码登录后可见
测试重开一个SSH,进入/www/wwwroot/express-ffmpeg/public/videos文件夹,创建一个文件
代码登录后可见
返回第一个SSH,如果没有报错,并且显示1.txt was rsyncd,也就是同步成功了。
最后将SH加入自启动
代码登录后可见
将/root/rsync_qiepian.sh &写在exit(0)之上。
最终的结果
一旦192.168.1.1和192.168.1.2转码,那么切片文件就会自动同步到调用服务器192.168.1.3和192.168.1.4服务器上边,而调用服务器192.168.1.3和192.168.1.4因为连接的是云转码服务器的mongodb数据库,数据也是同步的,直接在调用服务器后台进行分享链接调用。
最后192.168.1.5前端CMS调用分享分享,将优质的视频内容提供给用户观看。
这整个架构就完成了,并且可以无限扩容。