十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenSandbox Ingress 网关路由全解析:Header、URI 与通配符三种模式怎么选

OpenSandbox Ingress 网关路由全解析:Header、URI 与通配符三种模式怎么选 OpenSandbox Ingress 网关路由全解析Header、URI 与通配符三种模式怎么选【免费下载链接】OpenSandboxSecure, Fast, and Extensible Sandbox runtime for AI agents.项目地址: https://gitcode.com/GitHub_Trending/ope/OpenSandboxOpenSandbox 是一个面向 AI Agent 的安全、快速、可扩展的沙箱运行时Sandbox runtime。当你创建好一个沙箱后如何从外部把 HTTP / WebSocket 流量准确地投递到对应的那个沙箱实例上正是Ingress 网关要解决的问题。Ingress 是一个 HTTP/WebSocket 反向代理它通过三种路由模式 ——Header 模式、URI 模式、通配符Wildcard模式—— 决定请求该转发到哪个沙箱的哪个端口。本文将用最通俗的方式讲清这三种模式的工作原理、适用场景和常见坑点帮你快速做出选型。为什么需要 Ingress 网关每个沙箱运行在隔离环境里内部可能有多个服务端口比如 Web 服务 8080、Jupyter 44772、桌面 6080 等。外部用户不可能直连沙箱内部 IP需要一个统一入口来解析路由从请求中识别出目标沙箱 ID 目标端口查找实例根据沙箱 ID 查询它在集群中的真实地址反向代理把请求转发过去并支持 WebSocket 长连接下面这张图展示了一个通过沙箱访问到的终端会话这类 Web 化的交互入口正是由 Ingress 路由进来的三种路由模式一览Ingress 启动时通过--mode参数选择路由模式默认是headergo run main.go \ --mode header|uri \ --provider-type batchsandbox|agent-sandbox|fast-sandbox \ --port 28888模式路由信息位置典型形态适用场景Header请求头OpenSandbox-Ingress-To或Hostmy-sandbox-8080默认SDK 自动处理URI路径前两段/sandbox-id/port/path不方便改请求头时WildcardHost 第一级标签{token}.example.com通配符域名 签名 URLHeader 模式最灵活的默认选择Header 模式下Ingress 优先读取自定义头OpenSandbox-Ingress-To读不到就退回解析Host头。路由值格式统一为sandbox-id-port解析规则非常直观最后一个-之后是端口其余全部是沙箱 ID所以沙箱 ID 本身可以带连字符。# 方式一显式头 curl -H OpenSandbox-Ingress-To: my-sandbox-8080 \ https://ingress.opensandbox.io/api/users # 方式二Host 头 curl -H Host: my-sandbox-8080.example.com \ https://ingress.opensandbox.io/api/users关键点原始请求路径会被原样保留并转发给沙箱Ingress 只负责选路不改你的业务路径。转发前还会把OpenSandbox-Ingress-To这个头从请求里剥离沙箱内部不会看到它。URI 模式改不了请求头时的救星有些客户端或网关不方便添加自定义头这时可以用 URI 模式把路由信息直接写在 URL 路径里/sandbox-id/sandbox-port/path-to-request# 访问 my-sandbox 的 8080 端口转发到 /api/users curl https://ingress.opensandbox.io/my-sandbox/8080/api/users # WebSocket 同样适用 wss://ingress.opensandbox.io/my-sandbox/8080/ws解析规则第 1 段 → 沙箱 ID第 2 段 → 沙箱端口剩余部分 → 真正转发给沙箱的请求路径没有则默认/适合纯路径路由或想让客户端配置更简单的场景。通配符模式一个域名接入全部沙箱通配符Wildcard模式面向*.example.com这类泛域名把每个沙箱映射成第一级子域标签Host: {sandbox-id}-{port}.example.com在 Server 端配置里gateway.route.mode可以是wildcard/header/uri三选一[ingress] mode gateway [ingress.gateway] # 通配符模式必须是泛域名 address *.sandbox.example.com [ingress.gateway.route] mode wildcard # 或 header、uri⚠️ 注意Server 会校验模式与域名是否匹配 ——wildcard模式必须配泛域名而header/uri模式则不能带泛域名配置不一致会直接报错。通配符模式特别适合搭配签名短时效 URL使用下面这张图展示了一个在沙箱中通过无头浏览器渲染出的 Web 页面正是通过这类入口被外部访问的进阶签名短时效 URL 让三种模式更安全当开启 Secure Access 后你可以让 Server 为沙箱签发一个带过期时间和签名的路由令牌令牌形态为{sandbox_id}-{port}-{expires_b36}-{signature}同一个令牌可以无缝放进三种模式里模式令牌出现的位置WildcardHost: {token}.parentHeader沙箱路由头的值URI路径前缀/{sandbox_id}/{port}/{expires_b36}/{signature}/…这样你就能把可分享、会过期的临时入口发给别人而不暴露静态令牌。签名解析的核心逻辑位于 host_route_parse.go它会先尝试识别签名四段式格式识别不到才回退到传统的两段式从而兼容新旧两种令牌。常见错误码速查当路由失败时Ingress 会返回明确的 HTTP 状态码方便你快速定位状态码含义404沙箱不存在ErrSandboxNotFound503沙箱未就绪副本不足 / 缺少端点ErrSandboxNotReady502其他错误如 K8s API 异常401安全访问令牌不匹配 / 签名 URL 过期反向代理的核心实现见 http.go它基于httputil.ReverseProxy在上游异常时仅在响应头尚未写出时补一个502避免破坏正在流式传输的数据如 SSE。怎么选一图定决策默认 / 用官方 SDK→ Header 模式最省事SDK 自动带正确头客户端无法改请求头→ URI 模式路由写在 URL 里泛域名 想发签名短链→ Wildcard 模式要对外分享临时入口→ 任意模式 签名短时效 URLIngress 同时暴露了/status.ok健康检查端点配合可选的 Redis 自动续期Renew-Intent机制让长期访问的沙箱能自动延长存活时间。完整组件文档见 ingress.md安全访问细节见 secure-access.md。掌握这三种路由模式后你就能为不同的部署形态挑选最合适的入口方案让 AI Agent 与外部用户顺畅、安全地访问沙箱内的每一个服务。【免费下载链接】OpenSandboxSecure, Fast, and Extensible Sandbox runtime for AI agents.项目地址: https://gitcode.com/GitHub_Trending/ope/OpenSandbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表