GSM主控部署指南

GSM主控部署指南

GSM - 游戏管理系统 更新于 2026-07-16 00:33:28 2 次浏览

一、架构说明

浏览器 ──HTTPS/HTTP──► Nginx/Caddy ──:8080──► 主控 Master + MySQL
                                              │
                         Agent 出站访问主控 API(Token + 加密)
                                              │
                         ┌────────────────────┼────────────────────┐
                         ▼                    ▼                    ▼
                    Agent 节点 A         Agent 节点 B         Agent 节点 N
                   (跑游戏进程 / 文件 / FTP / 控制台 / 心跳)

二、部署主控(Master

1. 环境要求

MySQL:5.7+ / 8.0+,字符集 `utf8mb4`
端口:主控默认 `8080`;生产建议前面挂 `80/443` 反代
磁盘:预留 `data/`(初始化锁、运行时资源、Agent 安装包等)

2. 准备配置 `conf/app.conf`

生产务必改掉默认密钥与数据库密码。关键项:

appname = GameServerManager
httpport = 8080
copyrequestbody = true

# MySQL
mysqluser = gsm
mysqlpass = 请换成强密码
mysqlhost = 127.0.0.1
mysqlport = 3306
mysqldb = game_server_manager
mysqlcharset = utf8mb4

# JWT(生产必须更换)
jwtsecret = 请换成足够长的随机串
jwtexpire = 86400

# 节点 Token 有效期(秒)
nodetokenexpire = 604800

# 安全:生产关闭节点自动注册
security_allow_node_auto_register = false
security_node_register_secret =
security_trusted_proxies = 127.0.0.1,::1

# 首次初始化锁(存在则跳过种子数据)
initlockfile = data/system.lock

3. 首次启动检查

1. 控制台已出现超级管理员用户名与密码  
2. 存在 `data/system.lock`(表示初始化完成)  
3. 浏览器能打开 `/login`、`/admin`  
4. 登录后立刻修改密码并绑定邮箱  

启动时主控会:
- 加密/准备前端资源到 `data/runtime_assets/`
- AutoMigrate 表结构
- 首次无锁文件时:写入权限、默认角色、示例游戏模板、打印管理员账号

4. 登录后必做的系统设置

**主控对外地址** 
'master_public_url',Agent 拉取配置、心跳回连必须能访问的地址,如 `https://gsm.example.com`

**Agent 下载地址**(可选)
上传 Agent 包后通常会自动同步;也可手动指定

**SMTP**
注册验证码、告警邮件

**是否开放注册、VAS 计费等**
按业务需要

未配置 `master_public_url` 时,系统会用本机 `http://IP:8080` 兜底,外网 Agent 往往连不上。

5. HTTPS 反向代理(生产建议)

- `proxy_pass` 到 `127.0.0.1:8080`
- 开启 WebSocket(控制台流、站内信流)
- 调大 `client_max_body_size`(上传 Agent 包、文件)
- `security_trusted_proxies` 填反代所在 IP




评论

暂无评论,欢迎留下您的看法。

评论需审核后才会公开显示