部署与启动 #
- 检查部署主机依赖环境是否正确
- Redis版本>=6.2,所有服务需要连接到同一个redis实例
- 服务端提供x86_64架构的Linux(Ubuntu),Windows, Macos版本,其他CPU架构版本请联系客服获取,推荐在
Linux
下部署,Ubuntu使用20+版本。
单机部署 #
下载 (opens new window)UPRTC服务端,解压后放在任意路径,安装好依赖,配置redis地址和密码(本地redis没有密码无需配置),配置服务,下载授权文件放到config下。
- Linux或MacOS打开终端,进入UPRTC所在目录,按照以下命令启动服务,服务rtc-1的配置和启动主机信息相匹配。
$ ./uprtc-server -id rtc-1 -cluster cluster-1
# 如果使用redis中的配置时,参照 ’统一配置‘
$ ./uprtc-server -id rtc-1 -cluster cluster-1 -config redis
- 如需要后台启动,参照以下命令,请确保正常启动无误时再在后台运行
$ nohup ./uprtc-server -id rtc-1 -cluster cluster-1 >& stdout &
- 结束服务
# 建议使用以下命令正常结束服务
$ ps -ef | grep uprtc-server | grep -v "grep" | awk '{print $2}' | xargs kill -USR1
Windows命令 #
打开命令提示符(DOS窗口),进入UPRTC所在目录
# 启动
$ uprtc-server.exe -id rtc-1 -cluster cluster-1
自启动 #
生产环境建议把UPRTC服务配置为自启动,以linux为例,按照上面的启动命令创建启动脚本start.sh
,并把脚本保存存在UPRTC所在目录下,
#/bin/bash
# start.sh脚本内容
nohup ./uprtc-server -id rtc-1 -cluster cluster-1 >& stdout
- 编辑系统自启动脚本,
$ vi /etc/rc.local
假设UPRTC所在目录为/opt/urtc-server,在/etc/rc.local中最末加入su -c "cd /opt/urtc-server && ./start.sh"
系统服务 #
可以把UPRTC配置为系统服务实现自启动(linux,macos,windows都是适用),无论那种方式一定要先cd到UPRTC所在目录,可以把cd指令放到启动脚本中,把脚本作为启动的可执行文件配置到服务中。如果对如何配置不了解,我们技术人员会提供生产环境的实施服务。
集群部署 #
- 所有主机在连接到一个redis实例
- 建议每台主机环境一致,登录用户,UPRTC放置的位置一致,无论是虚拟机还是docker,可以创建好一个镜像,其他主机都使用这个镜像,有利快速搭建环境和后期维护。
- 集群部署原则
使用nginx集群部署 #
rest api和websocket使用nginx统一入口访问服务,rtc服务使用路由端口映射直连
路由集群部署 #
创建房间时可先对任意UPRTC服务器发起取得最小负载服务请求,再对最小负载服务发起创建房间请求。客户端websocket,rtc通过路由直连到UPRTC服务器。
各版本部署规则 #
使用必读
共同规则 #
- 一个授权只能给一个对象(企业/公司/单位/组织等)部署,也就是一个授权只能部署一个实例,实例可以是单节点,也可以是集群(所有节点连接到同一个redis上可以组成集群)。
重新部署规则 #
适用于开发版和内网版
- UPRTC服务ID在集群内是唯一的,例如ID为rtc-1的服务,在A主机启动了,就不能在B主机再启动一个ID为rtc-1的服务。如果需要在B主机启动rtc-1服务,需要先正常结束A主机的rtc-1服务(不要物理关机),或者把B主机的服务ID改成其他的,例如rtc-2。(服务结束命令参照)
- 如果需要更换redis,请务必先正常结束所有UPRTC服务或者迁移redis内数据到新redis实例,否则服务无法正常启动。如果发生这种情况可联系客服处理。
开发版 #
基于UPRTC开发是完全免费的,开发阶段请使用开发版,开发版拥有所有的功能,必须联网部署,不能在生产环境使用,开发版授权证书可直接在开发者控制台下载。
正式版 #
产品上线/项目交付时需要使用正式版授权,也就是生产环境的授权证书,在UPRTC服务启动时需要联网激活授权证书。
内网版 #
内网版适用于内网物理隔离的网络环境(无法连接互联网),内网版和正式版功能上是一致的,启动时无需要联网激活授权证书,但需要绑定服务器mac地址。参照授权设备