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个,那就要按照上述的方法进行处理。看了这么多,亲自动手操作吧!