v1.0.202504151416
修改日志
- 服务端初始化:
- 在与 EMQX 建立 MQTT 连接之前, 向与 EMQX 集成的 Redis 中写入账号、密码及授权范围。
- 服务端 HTTP 接口:
- 错误码已根据其在生命周期中的出现顺序进行了重新排序:
- 200: 成功执行请求, 没有发生任何错误。
- 500: 发生了内部服务器错误, 这通常意味着后端代码遇到了某种未预料的情况(如数据库操作失败)。此时, 用户界面只显示”System Error”, 但详细的错误信息记录下来以供开发者诊断问题。
- 1000: 身份验证异常, 会在认证环节失败时出现。常见场景有:用户登录时输入的用户名或密码有误, 无法通过验证;使用的令牌(如 JWT、OAuth2 令牌)无效、过期或者格式不对;请求头中缺少必要的认证信息, 像基本认证的 Authorization 头;用户尝试使用禁用、锁定或过期的账户登录。一旦发生这些情况, Spring Security 会抛出该异常, 阻止用户继续访问受保护资源。
- 1001: 拒绝访问异常, 通常发生在用户已通过认证(登录)但缺乏访问目标资源权限的场景, 例如请求的 URL 或方法所需角色、权限表达式(如 hasRole、hasAuthority)与用户实际权限不匹配, 匿名用户或 “记住我” 用户访问受限资源, 自定义访问决策逻辑拒绝(如 AccessDecisionVoter 投票失败), 以及请求方法、CSRF 校验、会话权限变更等配置导致的授权失败。核心原因是用户认证通过但授权(权限检查)未通过。
- 1002: 出现于 HTTP 请求 / 响应的消息转换过程失败时, 主要场景包括:请求体(如 JSON/XML)无法转换为目标对象(格式错误、类型不匹配等), 或响应体对象无法序列化为指定格式(如序列化规则冲突、字段无法处理), 本质是数据格式与目标类型间的转换逻辑失败, 常见于前后端数据格式不匹配或消息转换器配置问题。
- 1003: 通常出现在控制器方法的参数验证失败场景。当使用 @Valid 或 @Validated 注解对方法参数(如实体类、基本类型或自定义参数)进行校验时, 若客户端请求的参数不符合校验规则(如 @NotEmpty、@Size、@Pattern 等注解定义的约束), Spring 会在参数绑定过程中触发验证逻辑。若验证不通过, 会将所有错误信息封装成 BindingResult, 并抛出 MethodArgumentNotValidException。例如, 前端传递的表单数据缺失必填字段、字符串长度超出限制、格式不符合正则要求等, 都会导致该异常, 其本质是参数绑定与校验失败的统一封装, 便于集中处理请求参数的合法性问题.
- 1004: 对象验证失败时抛出。常见场景包括:直接通过验证器(如 Validator)对对象进行校验(如 validator.validate(object)), 或在框架(如 Spring、Hibernate)自动触发验证逻辑时(如服务层参数校验、JPA 实体持久化前的约束检查)。当对象的属性违反 @NotEmpty、@Size、@Pattern 等验证注解定义的规则时, 所有违反的约束会被收集为 ConstraintViolation 集合, 最终封装成该异常, 用于集中处理参数或实体的合法性校验失败问题。
- 1005: 业务逻辑验证失败。这意味着虽然请求本身可能是有效的, 但在尝试执行特定业务功能时发现了问题。例如, 如果某个设备ID不存在于系统中, 那么即使请求格式正确, 也会因为找不到相关联的数据而产生此类错误。同样地, 具体的原因会在error字段中给出。
- 消费模式类别
- 在设备列表接口中, 列表中每个设备详情添加了与绑定的采集服务相关的字段, 例如:采集服务器编号、采集服务器外网地址等。
- 在设备绑定接口中, 现已处理了重复绑定已删除设备的情况(绑定成功后, 删除了相关厂家数据)。此前, 这种特殊情况会导致 SQL 插入错误, 此问题现已得到解决。
- TOKEN 过期时间从 5 分钟延长至 30 分钟, 以防止客户在短时间内未进行任何操作而导致 TOKEN 过期。
- 错误码已根据其在生命周期中的出现顺序进行了重新排序:
- 服务端 MQTT 接口:
- 接收设备上报信息的接口对 GPS 信息进行了特别处理, 只有在 GPS 信息有效时才会将其存入缓存。
- WEB 客户端:
- 预加载多国语言词条文件, 以确保用户在切换语言后无需刷新页面即可生效。
- 安装程序:
- 在安装过程中移除了自动申请 SSL 证书的功能, 因为越南客户1提供的 Linux 服务器的 80 端口已被占用, 导致该功能无法使用。通过子命令
update-server-ssl, 单独申请或更新或申请 SSL 证书。 - 在更新配置子命令时, 也移除了自动申请 SSL 证书的支持, 原因同样是越南客户1提供的 Linux 服务器的 80 端口已被占用, 无法使用该功能。
- 添加了以下可配置项:
ES_CENTER_SERVER_JANUS_RTP_PORT_RANGE=40000-59999ES_CENTER_SERVER_COTURN_LISTENING_PORT=3478ES_CENTER_SERVER_COTURN_MIN_PORT=20000ES_CENTER_SERVER_COTURN_MAX_PORT=39999
- 对 spring-boot 程序的默认
JAVA_OPTS参数进行了优化, 以更好地适配 2 核 4GB 内存的服务器环境。优化后的参数为:-Xmx1024m -Xms512m -Xmn256m -XX:MaxDirectMemorySize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 - 在部署运行 spring-boot 程序的
docker-compose.yml文件中, 添加了mem_limit和mem_reservation配置:mem_limit: 2g:限制容器最多使用 2GB 的内存。mem_reservation: 512m:设定容器期望使用的内存量为 512MB。
- 将所有
docker-compose.yml文件中的restart: always修改为restart: on-failure:9, 以避免无限重启循环。
- 在安装过程中移除了自动申请 SSL 证书的功能, 因为越南客户1提供的 Linux 服务器的 80 端口已被占用, 导致该功能无法使用。通过子命令
测试说明
本部分详细阐述在 Ubuntu Server 22.04 LTS 系统上执行安装程序测试的具体步骤。
测试步骤
下载安装包并安装
# 安装 smbclient 工具, 用于从共享目录下载文件
sudo apt install -y smbclient
# 使用 smbclient 连接共享目录, 将指定的安装包下载至当前目录
smbclient //192.168.1.204/home1 -U 15675192166%es666666 << EOF
get yht/es-center-server-install-app-package/es-center-server-install-app-master-1.0.202504151416.tar.gz ./es-center-server-install-app-master-1.0.202504151416.tar.gz
quit
EOF
# 备选下载方法
# 如果需要, 也可以使用scp从内网服务器上下载安装包。
scp root@192.168.0.111:/es/tmp/es-center-server-install-app-master-1.0.202504151416.tar.gz .
# 创建安装目录, 路径可根据实际需求灵活调整
sudo mkdir -p /tmp/es-center-server-install-app
# 将下载的安装包解压到指定的安装目录
sudo tar -xzvf es-center-server-install-app-master-1.0.202504151416.tar.gz -C /tmp/es-center-server-install-app
# 查看解压后安装目录下各文件和文件夹的大小
sudo du -sh /tmp/es-center-server-install-app/*
# 安装前可选择修改配置文件。命令行输入的参数会覆盖配置文件中的设置,
# 但若命令行参数数量少于配置文件中的参数, 可根据特殊需求手动调整配置文件。
sudo nano /tmp/es-center-server-install-app/es-center-server-service/.env
# 根据实际情况指定服务安装目录、数据存储目录、内网 IP、公网 IP 以及域名。
# 进入安装目录并执行安装脚本完成安装。
# 特别注意, `data-root-dir` 对应的目录至关重要, 用于存储服务器运行过程中产生的数据(如日志文件、数据库内容等)。
# 因此, 务必将其设置为具有充足存储空间且安全可靠的目录。
# 推荐将此目录设置为磁盘阵列中的某个目录, 以确保数据的安全性与可靠性。
# `internal-eth-name` 是内网网卡名称(如 eth0), 涉及 janus 服务的配置需根据实际情况调整。
cd /tmp/es-center-server-install-app
sudo ./cli install-server \
--service-root-dir /opt/es-center-server-service \
--data-root-dir /var/lib/es-center-server-data \
--internal-eth-name eth0 \
--internal-ip 172.16.8.178 \
--external-ip 120.26.124.232 \
--domain-name zxs-cs.netbodycamera.com配置文件说明
安装前, 配置文件位于安装程序目录的相对路径:./es-center-server-service/.env
安装后, 配置文件位于 service-root-dir 对应的目录下, 文件名为:.env
# ####################################
# ### es-center-server Basic Configuration
# ####################################
# Root directory for the es-center-server service
ES_CENTER_SERVER_SERVICE_ROOT_DIR=/es-center-server-server
# Data root directory for the es-center-server
ES_CENTER_SERVER_DATA_ROOT_DIR=/es-center-server-data
# Internal IP address of the es-center-server
ES_CENTER_SERVER_INTERNAL_IP=192.168.0.1
# External IP address of the es-center-server
ES_CENTER_SERVER_EXTERNAL_IP=192.168.0.1
# Domain name of the es-center-server
ES_CENTER_SERVER_DOMAIN_NAME=example.com
# ####################################
# ### es-center-server-coturn WebRTC Traversal Service Configuration
# ####################################
# Docker image tag for the COTURN service
ES_CENTER_SERVER_COTURN_DOCKER_IMAGE_TAG=latest
# Domain name for the COTURN service
ES_CENTER_SERVER_COTURN_DOMAIN_NAME=example.com
# Internal IP address of the COTURN service
ES_CENTER_SERVER_COTURN_INTERNAL_IP=192.168.0.1
# External IP address of the COTURN service
ES_CENTER_SERVER_COTURN_EXTERNAL_IP=192.168.0.1
# Port for the COTURN service
ES_CENTER_SERVER_COTURN_PORT=3478
# TURN username for the COTURN service
ES_CENTER_SERVER_COTURN_TURN_USERNAME=webrtc-1
# TURN credential for the COTURN service
ES_CENTER_SERVER_COTURN_TURN_CREDENTIAL=A7mKp2L9xQ4Zn3T8
# ####################################
# ### es-center-server-janus WebRTC Gateway Configuration
# ####################################
# Docker image tag for the Janus service
ES_CENTER_SERVER_JANUS_DOCKER_IMAGE_TAG=0.0.3
# Identifier for the Janus instance
ES_CENTER_SERVER_JANUS_NO=janus-1
# Internal Ethernet interface name for the Janus service
ES_CENTER_SERVER_JANUS_INTERNAL_ETH_NAME=eth0
# Internal IP address of the Janus service
ES_CENTER_SERVER_JANUS_INTERNAL_IP=192.168.0.1
# External IP address of the Janus service
ES_CENTER_SERVER_JANUS_EXTERNAL_IP=192.168.0.1
# ####################################
# ### es-center-server-activemq-artemis Message Queue Configuration
# ####################################
# Docker image tag for the ActiveMQ Artemis service
ES_CENTER_SERVER_ACTIVEMQ_ARTEMIS_DOCKER_IMAGE_TAG=latest
# Username for the ActiveMQ Artemis service
ES_CENTER_SERVER_ACTIVEMQ_ARTEMIS_USER=artemis
# Password for the ActiveMQ Artemis service
ES_CENTER_SERVER_ACTIVEMQ_ARTEMIS_PASSWORD=abcd1234abcd
# TCP port for the ActiveMQ Artemis service
ES_CENTER_SERVER_ACTIVEMQ_ARTEMIS_TCP_PORT=61616
# HTTP port for the ActiveMQ Artemis service
ES_CENTER_SERVER_ACTIVEMQ_ARTEMIS_HTTP_PORT=8161
# ####################################
# ### es-center-server-emqx MQTT Message Broker Configuration
# ####################################
# Docker image tag for the EMQX service
ES_CENTER_SERVER_EMQX_DOCKER_IMAGE_TAG=5
# HTTP port for the EMQX service
ES_CENTER_SERVER_EMQX_HTTP_PORT=18083
# HTTPS port for the EMQX service
ES_CENTER_SERVER_EMQX_HTTPS_PORT=8883
# TCP port for the EMQX service
ES_CENTER_SERVER_EMQX_TCP_PORT=1883
# WebSocket port for the EMQX service
ES_CENTER_SERVER_EMQX_WS_PORT=8083
# Secure WebSocket port for the EMQX service
ES_CENTER_SERVER_EMQX_WSS_PORT=8084
# IP address of the EMQX service
ES_CENTER_SERVER_EMQX_IP=192.168.0.1
# ####################################
# ### es-center-server-nginx Reverse Proxy Configuration
# ####################################
# Docker image tag for the Nginx service
ES_CENTER_SERVER_NGINX_DOCKER_IMAGE_TAG=stable-alpine
# HTTP port for the Nginx service
ES_CENTER_SERVER_NGINX_HTTP_PORT=80
# HTTPS port for the Nginx service
ES_CENTER_SERVER_NGINX_HTTPS_PORT=443
# ####################################
# ### es-center-server-pg Database Cluster Configuration
# ####################################
# Docker image tag for PostgreSQL instance 0
ES_CENTER_SERVER_PG_0_DOCKER_IMAGE_TAG=16.3.0
# Docker image tag for PostgreSQL instance 1
ES_CENTER_SERVER_PG_1_DOCKER_IMAGE_TAG=16.3.0
# Docker image tag for Pgpool service
ES_CENTER_SERVER_PG_PGPOOL_DOCKER_IMAGE_TAG=4.5.2
# Username for Repmgr in PostgreSQL
ES_CENTER_SERVER_PG_REPMGR_USERNAME=repmgr
# Password for Repmgr in PostgreSQL
ES_CENTER_SERVER_PG_REPMGR_PASSWORD=abcd1234abcd
# Password for the 'postgres' user in PostgreSQL
ES_CENTER_SERVER_PG_POSTGRESQL_POSTGRES_PASSWORD=abcd1234abcd
# Username for the application in PostgreSQL
ES_CENTER_SERVER_PG_POSTGRESQL_USERNAME=es
# Password for the application in PostgreSQL
ES_CENTER_SERVER_PG_POSTGRESQL_PASSWORD=abcd1234abcd
# Username for SR check in Pgpool
ES_CENTER_SERVER_PG_PGPOOL_SR_CHECK_USER=repmgr
# Password for SR check in Pgpool
ES_CENTER_SERVER_PG_PGPOOL_SR_CHECK_PASSWORD=abcd1234abcd
# Username for the 'postgres' user in Pgpool
ES_CENTER_SERVER_PG_PGPOOL_POSTGRES_USERNAME=postgres
# Password for the 'postgres' user in Pgpool
ES_CENTER_SERVER_PG_PGPOOL_POSTGRES_PASSWORD=abcd1234abcd
# Admin username for Pgpool
ES_CENTER_SERVER_PG_PGPOOL_ADMIN_USERNAME=admin
# Admin password for Pgpool
ES_CENTER_SERVER_PG_PGPOOL_ADMIN_PASSWORD=abcd1234abcd
# Custom usernames for PostgreSQL in Pgpool
ES_CENTER_SERVER_PG_PGPOOL_POSTGRES_CUSTOM_USERS=es
# Custom passwords for PostgreSQL in Pgpool
ES_CENTER_SERVER_PG_PGPOOL_POSTGRES_CUSTOM_PASSWORDS=abcd1234abcd
# Port for the PostgreSQL service
ES_CENTER_SERVER_PG_PORT=5433
# ####################################
# ### es-center-server-redis Cache Service Configuration
# ####################################
# Docker image tag for the Redis service
ES_CENTER_SERVER_REDIS_DOCKER_IMAGE_TAG=7.2.5
# Port for the Redis service
ES_CENTER_SERVER_REDIS_PORT=6379
# Password for the Redis service
ES_CENTER_SERVER_REDIS_PASSWORD=abcd1234abcd
# Maximum memory limit for the Redis service
ES_CENTER_SERVER_REDIS_MAXMEMORY=100mb
# Memory eviction policy for the Redis service, using LRU
ES_CENTER_SERVER_REDIS_MAXMEMORY_POLICY=allkeys-lru
# ####################################
# ### es-center-server-main-service Main Service Configuration
# ####################################
# Docker image tag for the main service
ES_CENTER_SERVER_MAIN_SERVICE_DOCKER_IMAGE_TAG=1.20250318
# Java options for the main service, setting memory limits
ES_CENTER_SERVER_MAIN_SERVICE_JAVA_OPTS=-Xmx512m -Xms512m -Xmn128m -XX:MaxDirectMemorySize=64m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:InitiatingHeapOccupancyPercent=20
# Commented-out alternative Java options for the main service with different memory limits
# ES_CENTER_SERVER_MAIN_SERVICE_JAVA_OPTS=-Xmx1024m -Xms1024m -Xmn256m -XX:MaxDirectMemorySize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:InitiatingHeapOccupancyPercent=20
# HTTP port for the main service
ES_CENTER_SERVER_MAIN_SERVICE_HTTP_PORT=84
# ####################################
# ### es-center-server-device-service Device Service Configuration
# ####################################
# Docker image tag for the device service
ES_CENTER_SERVER_DEVICE_SERVICE_DOCKER_IMAGE_TAG=1.20250318
# Java options for the device service, setting memory limits
ES_CENTER_SERVER_DEVICE_SERVICE_JAVA_OPTS=-Xmx512m -Xms512m -Xmn128m -XX:MaxDirectMemorySize=64m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:InitiatingHeapOccupancyPercent=20
# Commented-out alternative Java options for the device service with different memory limits
# ES_CENTER_SERVER_DEVICE_SERVICE_JAVA_OPTS=-Xmx1024m -Xms1024m -Xmn256m -XX:MaxDirectMemorySize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:InitiatingHeapOccupancyPercent=20
# HTTP port for the device service
ES_CENTER_SERVER_DEVICE_SERVICE_HTTP_PORT=86
# ####################################
# ### es-center-server-web-app Web Application Configuration
# ####################################
# Docker image tag for the web application
ES_CENTER_SERVER_WEB_APP_DOCKER_IMAGE_TAG=1.20250318
# HTTP port for the web application
ES_CENTER_SERVER_WEB_APP_HTTP_PORT=89验证安装结果
为确认安装是否成功, 可执行以下操作:
# 系统初次启动需进行数据初始化, 等待 4 分钟后可通过浏览器访问指定 IP 验证安装情况。
# admin 账号的登录密码将在首次登录时生成。
# 示例访问地址:https://192.168.1.33
# 检查是否成功导入 Docker 镜像
sudo docker images
# 查看是否有 Docker 容器成功运行
sudo docker ps
# 检查配置文件是否已复制到目标目录
sudo ls -la /opt/es-center-server-service/
# 检查数据目录是否已成功创建
sudo ls -la /var/lib/es-center-server-data/
# 查看配置文件内容
sudo cat /opt/es-center-server-service/.env
# 查看配置文件内容, 确认占位符是否已被替换为正确的值
sudo cat /opt/es-center-server-service/es-center-server-coturn/etc/coturn/turnserver.conf
# listening-ip=ES_CENTER_SERVER_COTURN_INTERNAL_IP
# relay-ip=ES_CENTER_SERVER_COTURN_INTERNAL_IP
# external-ip=ES_CENTER_SERVER_COTURN_EXTERNAL_IP/ES_CENTER_SERVER_COTURN_INTERNAL_IP
# server-name=ES_CENTER_SERVER_COTURN_DOMAIN_NAME
# realm=ES_CENTER_SERVER_COTURN_DOMAIN_NAME
# 查看各个服务的状态
sudo docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# 查看各个服务的日志, 确保服务正常运行
# es-center-server-coturn WebRTC Traversal Service
sudo docker compose -f /opt/es-center-server-service/es-center-server-coturn/docker-compose.yml logs -f
# es-center-server-janus WebRTC Gateway
sudo docker compose -f /opt/es-center-server-service/es-center-server-janus/docker-compose.yml logs -f
# es-center-server-activemq-artemis Message Queue
sudo docker compose -f /opt/es-center-server-service/es-center-server-activemq-artemis/docker-compose.yml logs -f
# es-center-server-emqx MQTT Message Broker
sudo docker compose -f /opt/es-center-server-service/es-center-server-emqx/docker-compose.yml logs -f
# es-center-server-nginx Reverse Proxy
sudo docker compose -f /opt/es-center-server-service/es-center-server-nginx/docker-compose.yml logs -f
# es-center-server-pg Database Cluster
sudo docker compose -f /opt/es-center-server-service/es-center-server-pg/docker-compose.yml logs -f
# es-center-server-redis Cache Service
sudo docker compose -f /opt/es-center-server-service/es-center-server-redis/docker-compose.yml logs -f
# es-center-server-main-service Main Service
sudo docker compose -f /opt/es-center-server-service/es-center-server-main-service/docker-compose.yml logs -f
# es-center-server-device-service Device Service
sudo docker compose -f /opt/es-center-server-service/es-center-server-device-service/docker-compose.yml logs -f
# es-center-server-web-app Web Application
sudo docker compose -f /opt/es-center-server-service/es-center-server-web-app/docker-compose.yml logs -f安装后配置更新或升级
修改配置文件
安装成功后, 可通过修改配置文件更新配置, 具体步骤如下:
# 使用 vim 或 nano 编辑器修改配置文件中 `# custom` 部分的内容, 其余部分保持不变
sudo vi /opt/es-center-server-service/.env
sudo nano /opt/es-center-server-service/.env
# 完成修改后, 进入服务目录并执行更新脚本
cd /opt/es-center-server-service
sudo ./cli update-server
# 验证各个服务中的配置是否已更新
sudo cat /opt/es-center-server-service/es-center-server-coturn/etc/coturn/turnserver.conf
sudo cat /opt/es-center-server-service/es-center-server-janus/opt/janus/etc/janus/janus.transport.mqtt.jcfg
sudo cat /opt/es-center-server-service/es-center-server-nginx/etc/nginx/conf.d/default.conf
sudo cat /opt/es-center-server-service/es-center-server-web-app/etc/nginx/conf.d/default.conf更新或申请 SSL 证书
要更新或申请服务器的 SSL 证书, 请按照以下步骤操作:
- 确保配置文件中已正确配置域名。
- 执行以下命令调用
certbot来生成新的 SSL 证书, 并将其应用于服务器。
# 更新并生成 SSL 证书
cd /opt/es-center-server-service
sudo ./cli update-server-ssl
# 在命令行界面打印以下信息时, 请按一下回车键:
#
# Account registered.
# Requesting a certificate for zxs-cs.netbodycamera.com
升级服务
# 创建升级目录, 此目录路径可依据实际情况灵活设定
sudo mkdir -p /tmp/es-center-server-upgrade-app
# 把下载的升级包解压至指定的升级目录
sudo tar -xzvf es-center-server-upgrade-app-master-1.0.202504151416.tar.gz -C /tmp/es-center-server-upgrade-app
# 查看解压后升级目录里各文件和文件夹的大小
sudo du -sh /tmp/es-center-server-upgrade-app/*
# 进入升级目录并执行升级脚本以完成升级。
# 必须指定已安装的服务根目录 `service-root-dir`, 若该目录不存在或者目录下没有 .env 文件, 升级将停止
cd /tmp/es-center-server-upgrade-app
sudo ./cli upgrade-server \
--service-root-dir /opt/es-center-server-service
独立部署 Coturn 服务
# 通过分布式部署 Coturn 服务, 分担直播转发的流量压力。
# 创建 Coturn 服务的安装目录
sudo mkdir -p /tmp/es-center-server-coturn-service-install-app
# 将安装包解压到指定目录
sudo tar -xzvf es-center-server-coturn-service-install-app-master-1.0.202504151416.tar.gz -C /tmp/es-center-server-coturn-service-install-app
# 进入安装目录
cd /tmp/es-center-server-coturn-service-install-app
# 执行安装脚本完成 Coturn 服务的安装
sudo ./cli install-server-coturn-service \
--service-root-dir /opt/es-center-server-coturn-service \
--internal-ip 172.16.8.178 \
--external-ip 120.26.124.232 \
--domain-name zxs-cs-coturn.netbodycamera.com
# 安装后的常用检查方式
# 查看服务的日志, 确保服务正常运行
sudo docker compose -f /opt/es-center-server-coturn-service/es-center-server-coturn/docker-compose.yml logs -f
# 根据实际情况, 修改配置文件并更新服务
cd /opt/es-center-server-coturn-service
sudo nano .env
sudo ./cli update-server独立部署 Janus 服务
# 通过分布式部署 Janus 服务, 分担 WEBRTC SFU 的流量压力。
# 创建 Janus 服务的安装目录
sudo mkdir -p /tmp/es-center-server-janus-service-install-app
# 将安装包解压到指定目录
sudo tar -xzvf es-center-server-janus-service-install-app-master-1.0.202504151416.tar.gz -C /tmp/es-center-server-janus-service-install-app
# 进入安装目录
cd /tmp/es-center-server-janus-service-install-app
# 执行安装脚本完成 Janus 服务的安装
sudo ./cli install-server-janus-service \
--service-root-dir /opt/es-center-server-janus-service \
--internal-eth-name eth0 \
--internal-ip 172.16.8.178 \
--external-ip 120.26.124.232 \
--janus-server-no janus-1 \
--emqx-ip 172.16.8.178 \
--emqx-tcp-port 1883 \
--coturn-external-ip 120.26.124.233
# 安装后的常用检查方式
# 查看服务的日志, 确保服务正常运行
sudo docker compose -f /opt/es-center-server-janus-service/es-center-server-janus/docker-compose.yml logs -f
# 根据实际情况, 修改配置文件并更新服务
cd /opt/es-center-server-janus-service
sudo nano .env
sudo ./cli update-serverLast updated on