目标很明确:在 vpshalo 多区域节点上,用 nginx stream + SNI 给 OpenClaw v2026.5.x 做四层分流,同时坚持 gateway/doctor 只绑定 127.0.0.1,并把 status/doctor 合并成区域失败摘要。与 Traefik/frp 路线相比,本方案角色更少、排障更直观。

拓扑:多区域最小链路与边界

推荐拓扑是「每区入口机 + 每区 OpenClaw worker」。入口机只开 443;worker 上 gateway 为 127.0.0.1:18080,doctor 为 127.0.0.1:18081。SNI 与区域一一对应,跨区切换只动入口策略,不动应用进程。

模块 职责 失败后第一定位点
nginx stream TLS 入口、按 SNI 分流 入口机 error log 与 upstream 超时
OpenClaw gateway 业务请求接入 worker 本机 18080 健康响应
OpenClaw doctor 深度诊断状态 worker 本机 18081 与队列指标
聚合器 status/doctor 合并摘要 区域键冲突与时间桶聚合逻辑

stream 配置片段:只做四层、只看 SNI

配置只抓三点:启用 stream + ssl_preread on,SNI 映射区域 upstream,保留默认回退。stream 不看 HTTP 头,路由语义全部放在域名上。

map $ssl_preread_server_name $up {
  oc-tyo.example.com oc_tyo;
  default            oc_failover;
}
server { listen 443; ssl_preread on; proxy_pass $up; }

这就是它和 Traefik/frp 的核心区别:少配置面,换确定性。

证书与令牌:TLS 终止和应用鉴权分离

OpenClaw v2026.5.x 建议把 TLS 和令牌分层:证书负责传输信任,令牌负责业务鉴权,轮换窗口也分开。最关键的是 gateway bind loopback 不能破例,避免 worker 误暴露公网端口。

  • 证书清单:域名、颁发源、到期日、自动续签脚本、回滚证书版本。
  • 令牌清单:环境范围、生效窗口、轮换负责人、旧令牌失效时间。
  • 最小权限:入口机只持有转发所需配置,不持有 OpenClaw 管理密钥。

探针合并:status/doctor 跨区域失败摘要

status 负责可达性,doctor 负责深度状态。聚合器按 {region, 5分钟桶} 合并:同一区域两路连续失败才报警,多区域同类失败再升级全局。这样能显著降低告警风暴。

建议把摘要字段固定为 regionsnistatus_okdoctor_okp95_latency_msfirst_seenlast_seen。字段稳定后,跨团队联动会快很多。

FAQ:上线前最容易踩的五个坑

Q1:已经有 Traefik,为什么还要 nginx stream?
当你只需要四层 SNI 分流且目标是可复现、低变更面时,stream 更简洁。Traefik 适合复杂七层治理,这不是二选一,而是按场景分层。

Q2:frp 与 stream 怎么选?
有稳定内网链路选 stream;需要穿透与远端映射时选 frp。

Q3:v2026.5.x 上线前必查什么?
确认 gateway/doctor 都是 loopback,SNI 命中正确,status/doctor 合并规则已生效。

落地时建议采用「单区先行、跨区复用」节奏:先在一个区域做完整演练,记录证书更新、令牌轮换、入口回退与告警抑制的执行时长,再把同一脚本复制到其他区域。这样每次变更都能复用同一套观测口径,减少跨团队沟通成本,也便于审计与复盘。

下一步行动

把你的多区域 OpenClaw 网关流程固化为日常 SOP

先在 帮助中心对照部署文档,再回到 首页查看节点入口;继续阅读相关 OpenClaw 文章,完成 Traefik / frp / stream 三条路线的选型对比。

查看帮助 返回首页 相关 OpenClaw 文