HowTo文档
一台服务器启动多版本 XSwitch
在实际测试当中,资源很紧缺,一台服务器上需要跑很多进程或 Docker 容器。
XSwitch 多版本在一台服务器中部署及运行。注意事项如下:
下载资源
可以到 XSwitch 官网下载社区版及企业版安装资源。
解压文件
将下载不同版本的文件解压到相应的目录中,建议安装在/usr/local/
目录下。
tar zxvf xswitch-community6.0.0.tar.gz -C /usr/local tar zxvf xswitch6.0.0.tar.gz -C /usr/local
修改 docker-compose.yml 文件
在一台服务器中容器的名字不允许相同。如果不修改会报以下错误:
Creating xswitch-pg ... error ERROR: for xswitch-pg Cannot create container for service xswitch-pg: Conflict. The container name "/xswitch-pg" is already in use by container "d7b27c5bcf19c68b83c8898d93d7890884b81fce5040752bf8bff7ca2e3e8632". You have to remove (or rename) that container to be able to reuse that name.
这时我们要对第 2 个 XSwitch 的容器名称进行修改。以xswitch
为例:
# 社区版 version: "3" services: xswitch: container_name: "xswitch" image: ccr.ccs.tencentyun.com/free/xswitch-community:6.0.0-beta2 # 社区版 version: "3" services: xswitch: container_name: "xswitch-2" image: ccr.ccs.tencentyun.com/xswitch/xswitch:6.0.0-beta2
修改.env 文件
在一台服务器中,XSwitch 容器启动是以host
模式启动,开启多版本 XSwitch,需要修改.env
文件中的端口,确保 2 台 XSwitch 端口不冲突,这样Docker
才能正常启动。 以社区版及企业版为例:
# 社区版 SIP_PORT=7060 SIP_TLS_PORT=7061 SIP_PUBLIC_PORT=7080 SIP_PUBLIC_TLS_PORT=7081 VERTO_WS_PORT=8081 VERTO_WSS_PORT=8082 RTP_START=10000 RTP_END=10099 ESL_PORT=8021 EXT_IP=192.168.3.149 LOCAL_IP=192.168.3.149 #企业版 SIP_PORT=5060 SIP_TLS_PORT=5061 SIP_PUBLIC_PORT=5080 SIP_PUBLIC_TLS_PORT=5081 VERTO_WS_PORT=9081 VERTO_WSS_PORT=9082 RTP_START=20000 RTP_END=20099 ESL_PORT=9021 EXT_IP=192.168.3.149 LOCAL_IP=192.168.3.149
数据库端口修改
因为 XSwitch 启动是使用 PostgreSQL 的默认端口5432
,这时我们要区分每个版本的数据库端口。在 env 配置中进行修改相应的连接与端口。
# 社区版 DSN=postgresql://xui:xui@127.0.0.1/xui # 企业版 DSN=postgresql://xswitch:xswitch@127.0.0.1:4432/xswitch
这时你就可以在一台机器上启动 XSwitch 社区版及企业版了。如果要开启 N 个,那就要按照上述的方法进行处理。看了这么多,亲自动手操作吧!