Glue2
Glue2 是 HolaCloud 的中央 API 网关。它对每个传入请求进行身份验证,将其路由到正确的后端服务,并收集访问日志。所有发往 HolaCloud 服务的流量都经过 Glue2。
身份验证
Glue2 支持三种身份验证机制:
会话
通过 HolaAuth 进行身份验证的基于浏览器的会话。登录后,会话 Cookie 用于验证后续请求。
API 密钥
使用 API 密钥和密钥对进行的机器间访问。这些密钥通过 apikey 和 secret HTTP 标头传递,并针对项目的凭证进行验证。
OAuth
OAuth 2.0 集成允许通过外部提供商进行身份验证。Glue2 验证令牌并将用户身份信息注入到代理请求中。
基于虚拟主机的路由
Glue2 根据 Host 标头路由请求。HolaCloud 中的每个项目都获得一个唯一的子域名(project.hola.cloud),Glue2 将传入请求映射到该项目对应的后端服务。
1┌─────────────┐ ┌──────────┐ ┌──────────────┐
2│ 客户端 │────▶│ Glue2 │────▶│ 项目服务 │
3└─────────────┘ └──────────┘ └──────────────┘
4 │
5 ├────▶ 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,用于实时监控和分析。
评论