Apache OpenMeetings 9.1.0 配置参数详解
Apache OpenMeetings 9.1.0 配置参数详解,覆盖数据库(H2/MySQL/PostgreSQL)、端口与 TLS、JVM 堆、openmeetings.properties、运行时配置与邮件参数,含生产配置模板与 FAQ。
Apache OpenMeetings 9.1.0 配置参数详解
目标:系统梳理 Apache OpenMeetings 9.1.0 的全部常用配置参数(数据库、端口/TLS、JVM、应用与运行时配置),给出位置、默认值与修改方法。所有默认值取自 Ubuntu 22.04 实测安装(JDK 21.0.12.1、Tomcat 11.0.23、安装路径 /opt/apache-openmeetings-9.1.0,下称 $OM_HOME)。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(x86_64)
- 版本:Apache OpenMeetings 9.1.0(内嵌 Apache Tomcat 11.0.23,JDK 21.0.12.1)
- 安装路径:/opt/apache-openmeetings-9.1.0($OM_HOME)
- 主要配置文件:
- $OM_HOME/conf/server.xml(Tomcat 端口/TLS)
- $OM_HOME/bin/setenv.sh(JVM 参数)
- $OM_HOME/webapps/openmeetings/WEB-INF/classes/openmeetings.properties(应用参数)
- $OM_HOME/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml(数据库连接)
- /etc/systemd/system/openmeetings.service(systemd 托管参数)
- 管理账号:admin(示例口令 Q1w2e3r4!)
二、前置条件
- 已按《Ubuntu 22.04 安装 Apache OpenMeetings 9.1.0 指南》完成部署并正常运行。
- 修改配置文件需要 root 权限;应用级参数(后台「配置」页)需要管理员账号登录。
- 修改 server.xml / persistence.xml / openmeetings.properties 后均须重启服务生效:
systemctl restart openmeetings
三、参数查看与修改方式
OpenMeetings 的参数分四类,修改位置互不相同:
| 参数类别 | 修改位置 | 生效方式 |
|---|---|---|
| 数据库连接 | persistence.xml(或 admin.sh -i 的 --db-* 参数) | 重启服务 |
| 端口/TLS | conf/server.xml | 重启服务 |
| JVM 堆 | bin/setenv.sh / systemd Environment | 重启服务 |
| 应用参数 | openmeetings.properties + 后台「配置」页 | 重启服务或页面保存即生效 |
查看当前生效 JVM 参数(验证堆与 GC):
ps -ef | grep [j]ava
回显:
root ... -Xms256m -Xmx512m -server -XX:+UseParallelGC ... org.apache.catalina.startup.Bootstrap start
四、参数总览
| 参数 | 默认值 | 位置 | 说明 |
|---|---|---|---|
| Url(H2) | jdbc:h2:./omdb | persistence.xml | 内嵌数据库连接串 |
| HTTP 端口 | 5080 | conf/server.xml | 对外 HTTP 服务端口 |
| HTTPS 端口 | 5443 | conf/server.xml | 对外 HTTPS 服务端口 |
| 关闭端口 | 8005 | conf/server.xml | 服务关闭监听端口 |
| -Xms/-Xmx | 256m/512m | setenv.sh / systemd | JVM 堆 |
| scrypt.cost | 16384 | openmeetings.properties | 口令散列成本 |
| kurento.ws.url | ws://127.0.0.1:8888/kurento | openmeetings.properties | Kurento 媒体服务器地址 |
| nettest.max.clients | 50 | openmeetings.properties | 网络测试并发上限 |
| user.login.minimum.length | 4 | 后台「配置」 | 登录名最小长度 |
| user.pass.minimum.length | 8 | 后台「配置」 | 口令最小长度 |
| max.upload.size | 104857600 | 后台「配置」 | 单文件上传上限(100MB) |
| default.timezone | Europe/Berlin | 后台「配置」 | 默认时区 |
| application.base.url | https://localhost:5443/openmeetings/ | 后台「配置」 | 对外访问地址 |
五、核心参数分类详解
5.1 数据库参数
默认内嵌 H2,连接定义在 $OM_HOME/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml:
<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp2.BasicDataSource" />
<property name="openjpa.ConnectionProperties" value="DriverClassName=org.h2.Driver, Url=jdbc:h2:./omdb, maxTotal=100, maxIdle=100, minIdle=0, maxWaitMillis=10000, TestOnBorrow=true, Username=, Password=" />
Url=jdbc:h2:./omdb:相对 $OM_HOME 目录,库文件为 omdb.mv.db。- 连接池:maxTotal=100、maxIdle=100、minIdle=0、maxWaitMillis=10000。
发行包在 META-INF/ 下提供 h2 / mysql / postgresql / oracle / mssql / db2 各版本的 *_persistence.xml 样例,切换数据库时参考对应样例改写。
初始化时指定数据库(推荐,admin.sh -i 提供 --db-* 参数,服务停止状态下执行):
cd /opt/apache-openmeetings-9.1.0
./admin.sh -i -user admin -email admin@example.com -tz "Asia/Shanghai" -group "admin" --password "Q1w2e3r4!" \
--db-type mysql --db-host 192.168.1.100 --db-port 3306 --db-name openmeetings \
--db-user om --db-pass 'Om@2026#db'
--db-type取值:h2、mysql、postgresql、oracle、mssql、db2(与 *_persistence.xml 对应)。--drop:安装前清空数据库;--force:跳过旧数据存在性检查强制安装。
⚠️ MySQL 连接要点(官方文档):数据库字符集用 utf8;JDBC 驱动 jar 放入 $OM_HOME/webapps/openmeetings/WEB-INF/lib/;连接串建议加 serverTimezone 参数(如
jdbc:mysql://192.168.1.100:3306/openmeetings?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai)。
5.2 端口与 TLS 参数
定义于 $OM_HOME/conf/server.xml:
- HTTP 连接器:
<Connector port="5080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="5443" /> - HTTPS 连接器:port=5443,使用
conf/localhost.jks(别名 tomcat,keystore 密码 openmeetings,默认自签证书) - Server 关闭端口:8005;AJP 8009 默认注释。
修改端口示例(HTTP 改 8080):
sed -i 's/port="5080"/port="8080"/' /opt/apache-openmeetings-9.1.0/conf/server.xml
systemctl restart openmeetings
⚠️ 生产替换证书:将正式证书与私钥装入 PKCS12/JKS 后,同步修改 HTTPS Connector 的 keystoreFile 与 keystorePass,并更新后台「配置」页的 application.base.url,避免登录回调地址错误。
5.3 JVM 与内存参数
堆统一限定 256–512MB,两个修改入口:
- 脚本启动入口
$OM_HOME/bin/setenv.sh:
export CATALINA_OPTS="-Xms256m -Xmx512m -server -XX:+UseParallelGC"
export JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
- systemd 入口
/etc/systemd/system/openmeetings.service:
Environment="CATALINA_OPTS=-Xms256m -Xmx512m -server -XX:+UseParallelGC"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
修改后验证生效:
systemctl daemon-reload
systemctl restart openmeetings
ps -ef | grep [j]ava
回显(-Xms256m -Xmx512m 生效):
root ... -Xms256m -Xmx512m -server -XX:+UseParallelGC ... org.apache.catalina.startup.Bootstrap start
💡 说明:发行包自带 systemd 样例的堆为 -Xms1G -Xmx4G,对 2GB 内存的小服务器过大,务必按上述区间调整;16GB 以上内存且会议并发高时可上调至 -Xmx2g。
5.4 openmeetings.properties 应用参数
文件:$OM_HOME/webapps/openmeetings/WEB-INF/classes/openmeetings.properties
Crypt(口令散列):
| 参数 | 默认值 | 说明 |
|---|---|---|
| scrypt.cost | 16384 | scrypt 计算成本 |
| remember.me.rotation.days | 30 | 记住我加密参数轮换周期(天) |
Timeouts(清理任务超时,毫秒):
| 参数 | 默认值 | 说明 |
|---|---|---|
| job.cleanup.session.timeout | 1800000(30 分钟) | 会话清理超时 |
| job.cleanup.test.setup.timeout | 3600000(1 小时) | 测试设置清理超时 |
| job.cleanup.reset.hash.ttl | 86400000(1 天) | 重置口令哈希 TTL |
| job.cleanup.conf.log.ttl | 604800000(7 天) | 会议日志保留 TTL |
Kurento(媒体服务器,⚠️ 需 KMS 部署前置):
| 参数 | 默认值 | 说明 |
|---|---|---|
| kurento.ws.url | ws://127.0.0.1:8888/kurento | KMS WebSocket 地址 |
| kurento.check.timeout | 10000(毫秒) | 心跳检查超时 |
| kurento.watch.thread.count | 10 | 媒体线程数 |
| kurento.kuid | df992960-e7b0-11ea-9acd-337fb30dd93d | Kurento 实例唯一 ID,建议按 https://www.uuidtools.com 生成新值并定期更换 |
| kurento.ignored.kuids | 空 | 忽略的实例 ID 列表(空格/逗号分隔) |
| kurento.certificateType | 空(RSA/ECDSA) | DTLS 媒体面证书类型 |
NetTest(网络测试):
| 参数 | 默认值 | 说明 |
|---|---|---|
| nettest.max.clients | 50 | 网络测试并发客户端上限 |
SIP(与 Asterisk 对接,⚠️ 需 Asterisk 部署前置):
| 参数 | 默认值 | 说明 |
|---|---|---|
| sip.max.contacts | 1 | 单用户最大联系数 |
| sip.transport | transport-udp | 传输协议 |
| sip.manager.port | 5038 | Asterisk Manager 端口 |
| sip.ws.local.port.min/max | 6666/7666 | 本地 WS 端口段 |
| sip.ws.remote.port | 8088 | 远端 WS 端口 |
OTP(基于时间的一次性口令):
| 参数 | 默认值 | 说明 |
|---|---|---|
| otp.issuer | 空(默认取 application.name) | OTP 颁发者 |
| otp.ntp.server | pool.ntp.org | NTP 时间源 |
| otp.ntp.timeout | 3000(毫秒) | NTP 超时 |
⚠️ 注意:OTP 参数必须在用户启用 OTP 之前修改,否则用户将无法登录。
5.5 运行时配置参数(后台「配置」页)
登录管理员账号后经「配置」页维护,存储于数据库,等价键与默认值:
| 参数 | 默认值 | 说明 |
|---|---|---|
| user.login.minimum.length | 4 | 登录名最小长度 |
| user.pass.minimum.length | 8 | 口令最小长度 |
| max.upload.size | 104857600(100MB) | 单文件上传上限 |
| application.base.url | https://localhost:5443/openmeetings/ | 对外访问地址(含端口,生产必改) |
| default.timezone | Europe/Berlin | 默认时区(中国服务器建议改 Asia/Shanghai) |
| allow.frontend.register | true | 是否允许前台注册 |
| application.name | OpenMeetings | 应用名(同时作 OTP issuer 默认值) |
| document.dpi | 150 | 文档转图片 DPI |
5.6 登录与密码策略参数
- 登录名最小 4 位、口令最小 8 位,口令须含大写、小写、数字与特殊符号(StrongPasswordValidator 校验,admin.sh -i 的 --password 同样受限)。
- 修改策略:后台「配置」页调整 user.login.minimum.length / user.pass.minimum.length 后保存。
- 记住我:remember.me.rotation.days 每 30 天轮换加密参数。
5.7 邮件/SMTP 参数
初始化时可通过 admin.sh -i 指定:
| 参数 | 默认值 | 说明 |
|---|---|---|
| --system-email-address | noreply@openmeetings.apache.org | 系统发件邮箱 |
| --smtp-server | localhost | SMTP 服务器 |
| --smtp-port | 25 | SMTP 端口 |
| --email-auth-user | 空 | SMTP 认证用户(空为匿名) |
| --email-auth-pass | 空 | SMTP 认证密码 |
| --email-use-tls | no | 是否启用 TLS |
后台「配置」页可二次修改邮件服务器与发件地址。
六、生产配置模板
适用场景:8GB 内存、NVMe SSD、并发 50–100 会议的常规生产服务器。
| 项目 | 值 | 位置 |
|---|---|---|
| JVM 堆 | -Xms512m -Xmx1g -server -XX:+UseParallelGC | setenv.sh / systemd |
| 数据库 | MySQL 8(utf8mb4,serverTimezone=Asia/Shanghai) | admin.sh -i --db-* 初始化 |
| 时区 | Asia/Shanghai | 后台「配置」/ -tz 参数 |
| HTTPS | 正式证书替换 localhost.jks | conf/server.xml |
| application.base.url | https://<域名>:5443/openmeetings/ | 后台「配置」 |
| 上传上限 | 104857600(按业务调整) | 后台「配置」 |
| Kurento(可选) | 同机/独立 KMS,更新 kurento.ws.url 与 kurento.kuid | openmeetings.properties |
七、常见问题
7.1 修改端口后登录跳转地址不对
原因:仅改了 server.xml,后台「配置」页 application.base.url 仍是旧地址。
处理:同步更新 application.base.url 为 http(s)://<服务器IP>:<新端口>/openmeetings/ 并保存。
7.2 上传大文件被拒
原因:max.upload.size 默认 100MB。
处理:后台「配置」页调大该值后保存(需重启使部分场景生效)。
7.3 切换 MySQL 后启动报连接失败
原因:驱动未放入 WEB-INF/lib,或连接串缺 serverTimezone/utf8 参数。
处理:参考 5.1 节放入 mysql-connector 驱动并补全连接串参数;确认库字符集 utf8。
7.4 时区显示为 Europe/Berlin
原因:default.timezone 未改。
处理:后台「配置」页设为 Asia/Shanghai(初始化时用 -tz "Asia/Shanghai" 亦可)。
7.5 OTP 用户无法登录
原因:otp.issuer / NTP 参数在用户启用 OTP 后修改。
处理:改回启用时的参数,或按官方文档重置用户 OTP。