Glue2

Glue2 是 HolaCloud 的中央 API 网关。它对每个传入请求进行身份验证,将其路由到正确的后端服务,并收集访问日志。所有发往 HolaCloud 服务的流量都经过 Glue2。

身份验证

Glue2 支持三种身份验证机制:

会话

通过 HolaAuth 进行身份验证的基于浏览器的会话。登录后,会话 Cookie 用于验证后续请求。

API 密钥

使用 API 密钥和密钥对进行的机器间访问。这些密钥通过 apikeysecret HTTP 标头传递,并针对项目的凭证进行验证。

OAuth

OAuth 2.0 集成允许通过外部提供商进行身份验证。Glue2 验证令牌并将用户身份信息注入到代理请求中。

基于虚拟主机的路由

Glue2 根据 Host 标头路由请求。HolaCloud 中的每个项目都获得一个唯一的子域名(project.hola.cloud),Glue2 将传入请求映射到该项目对应的后端服务。

1┌─────────────┐     ┌──────────┐     ┌──────────────┐
2│   客户端    │────▶│  Glue2   │────▶│  项目服务    │
3└─────────────┘     └──────────┘     └──────────────┘
45                           ├────▶ InceptionDB
6                           ├────▶ Lambda
7                           ├────▶ KVNode
8                           └────▶ Files / Config / etc.

注入的标头

当 Glue2 将请求转发到后端服务时,会注入以下标头:

标头 描述
X-Glue-Authentication 纯 JSON 身份验证上下文
X-Holacloud-Project-Id 从虚拟主机提取的项目 ID
X-Forwarded-For 原始客户端 IP 地址

后端服务使用这些标头进行授权和租户隔离。

速率限制

Glue2 按项目和端点应用速率限制。限制可在项目设置中配置,可基于每秒请求数、并发连接数或每日配额。当超过限制时,Glue2 返回 429 Too Many Requests 响应。

访问日志

所有通过 Glue2 的请求都会记录以下信息:

  • 时间戳和请求持续时间
  • 客户端 IP 和用户代理
  • 请求方法、路径和状态码
  • 项目 ID 和身份验证方法
  • 后端服务目标和响应时间

日志将流式传输到 InstantLogs,用于实时监控和分析。

评论

发表评论