用 services.toml 发布服务

services.toml 是 Node 的本地服务声明,也是本机最终边界。默认路径为 /etc/nsio/services.toml,也可用 ns up --services-file <PATH>指定。文件缺失表示不发布任何 Service;文件存在但语法/字段错误应明确失败。

示例

[settings]
strict = true

[services.internal-web]
protocol = "http"
host = "127.0.0.1"
port = 8080

[services.postgres-readonly]
protocol = "tcp"
host = "127.0.0.1"
port = 5432

字段应以当前二进制和 NSD 快速开始提供的 schema 为准。表名中的名称用于识别,protocol 必须与实际应用一致,host 应绑定最小必要接口;不要为了“先跑通”把本机管理端口暴露到所有接口。

上线步骤

  1. 在本机先验证目标端口和协议。
  2. 写入/修改配置并限制文件权限。
  3. 重启或重新运行 ns up --detach --wait-ready
  4. ns status 和 NSD 服务核对完整集合。
  5. 创建最小 L4 访问授权。
  6. 用授权与未授权主体分别验证。

更新与删除

Node 上报的是当前完整集合。改名通常表现为删除旧资源再新增;这可能使基于旧 Service ID 的授权失效。删除服务前先移除授权与依赖,更新文件后等待最新上报,再清理历史条目。

常见失败

  • 本机地址/端口未监听;
  • HTTP/HTTPS 协议声明与真实服务不一致;
  • 当前 Node 位于错误 Space;
  • Service 已发布但没有访问授权;
  • 服务目录是最新的,但客户端仍使用切换前缓存。