共享内存模式
应用监管器企业版+介绍
当用户希望对业务进行应用级别的拆分,但又不希望引入复杂的部署和运维架构时,可以使用共享内存的多应用模式。
在这种模式下,一个 NocoBase 实例中可以同时运行多个应用。每个应用是独立的,可以连接独立的数据库,可以单独创建、启动和停止,但它们共享同一个进程和内存空间,用户仍然只需要维护一个 NocoBase 实例。
使用手册
环境变量配置
在使用多应用功能前,请确保在 NocoBase 启动时设置了以下环境变量:
应用创建
在系统设置菜单中点击「应用监管器」,进入应用管理页面。

点击「新增」按钮,创建一个新应用。

配置项说明
应用启动
点击 启动 按钮可启动子应用。
如果在创建时勾选了 “首次访问时启动”,则首次访问时会自动启动。

应用访问
点击 访问 按钮,会在新标签页中打开该子应用。
默认使用 /apps/:appName/admin/ 访问子应用,例如
同时,也可以为子应用配置独立的域名,需要将域名解析到当前 ip,如果使用了 nginx,也需要在 nginx 配置里添加域名。
应用停止
点击 停止 按钮可启动子应用。

应用状态
在列表中可以查看每个应用的当前状态。

应用删除
点击 删除 按钮可移除应用。

常见问题
1. 插件管理
其他应用可以使用的插件和主应用一致(包括版本),但是可以独立配置和使用插件。
2. 数据库隔离
其他应用可以配置独立的数据库,如果想应用之间进行数据共享,可通过外部数据源实现。
3. 数据备份和迁移
目前在主应用上数据备份不支持包含其他应用的数据(只包含应用基本信息),需手动在其他应用内备份和迁移。
4. 部署与更新
在共享内存模式下,其他应用的版本将自动跟随主应用进行升级,自动保证应用版本一致。
5. 应用会话
- 若应用使用独立的 JWT 密钥,则应用会话独立于主应用及其他应用。如果通过同一域名的子路径访问不同应用,由于应用 TOKEN 缓存在 LocalStorage 中,在不同应用间切换时需要重新登录。建议为不同应用配置独立的域名,以实现更好的会话隔离。
- 若应用未使用独立的 JWT 密钥,则会共享主应用的会话,在同一浏览器访问其他应用后返回主应用无需重新登录。但 存在安全隐患,如果不同应用的用户 ID 重复,可能导致用户越权访问其他应用的数据。

