多实例 / 多小组
英文翻译待补,当前显示简体中文。 / English translation pending — showing Simplified Chinese.
真遇中,一个 server 实例 = 一个小组。同一台机器上可以跑多个实例来承载多个小组;它们通常共用同一个注册处,从而共享账号、好友与公开组目录。
每个实例必须唯一的三项
Section titled “每个实例必须唯一的三项”| 字段 | 说明 |
|---|---|
server_id |
实例 / 服务器 id,全局唯一 |
listen |
监听地址与端口,各实例不得重复 |
data_dir |
数据目录,各实例独立 |
其余字段(小组名、对外地址等)按实例分别设置。为每个实例各写一份配置文件即可。
示例:同机两个实例
Section titled “示例:同机两个实例”实例一(server-1.toml):
owner_public_key_hex = "<持有者公钥 hex>"server_id = "group-one"name = "第一小组"listen = "127.0.0.1:8443"data_dir = "/srv/gather/group-one"public_endpoint = "https://one.example.com"registry_url = "https://registry.example.com"实例二(server-2.toml):
owner_public_key_hex = "<持有者公钥 hex>"server_id = "group-two"name = "第二小组"listen = "127.0.0.1:8444"data_dir = "/srv/gather/group-two"public_endpoint = "https://two.example.com"registry_url = "https://registry.example.com"两个实例可指向同一个注册处;各自可在公开组目录中被解析与搜索(取决于 register / public)。
获取持有者身份
Section titled “获取持有者身份”owner_public_key_hex 是小组持有者身份的 ed25519 公钥(hex),它决定了谁拥有最高权限(如创建邀请)。
客户端对导出身份公钥的支持随公开发布提供(即将开放)。届时将持有者身份的公钥填入配置、重启实例,即可用该身份在客户端内管理该小组。
持有者是小组的最高权限身份,请务必自行妥善保管其恢复凭证,不要使用来源不明的密钥。
两种邀请链接形式:
| 形式 | 依赖 |
|---|---|
指定 server(经注册处解析地址) |
该实例已上报注册处,且 register=true |
指定 server + endpoint=<直连地址> |
不依赖注册处,直接指向该实例 |
当同一浏览器 / 网络环境下存在多个实例时,建议使用带 endpoint 的链接,避免被默认实例接管。
| 现象 | 原因 | 处理 |
|---|---|---|
Address already in use |
端口冲突 | 为不同实例设置不同的 listen |
| 加入后连到了另一个实例 | 邀请链接缺少 endpoint |
使用带 endpoint 的直连链接 |
改动 server_id 后「数据没了」 |
新 id 相当于新建实例 | 改回原 id,或连同 data_dir 一起迁移 |
| 公开组目录搜不到某个实例 | public=false 或注册处不可达 |
置 true 并确认注册处可达 |
| 浏览器直连某实例报跨源 | 未把页面来源加入该实例白名单 | 在各实例的 cors_allowed_origins 中加入来源 |