HAProxy 可以生成基于 UUID 的唯一连接 ID 吗?

HAProxy 可以生成基于 UUID 的唯一连接 ID 吗?

我有一个 HAProxy 负载均衡器,我想用它来为请求标记一个唯一的 ID(X-Unique-ID 标头),以便我可以关联多个系统中的日志之间的事件。

HAProxy 具有使用指令执行此操作的功能unique-id-format。文档解释说,这仅使用日志系统的语法,并继续建议您使用客户端和服务器 IP 地址、时间戳等内容来构建可能唯一的内容。

我想知道是否可以为每个请求生成一个随机(版本 4)UUID(或类似的东西),而不是生成一个包含潜在敏感客户端信息(如 IP 地址和请求时间)的 UUID。

答案1

从 HAProxy 2.0 开始,该uuid()功能可用。
因此,这应该可以满足您的需要:

unique-id-format %[uuid()]
unique-id-header X-Unique-ID

使用unique-id-header而不是 的一个优点http-request set-header是您可以在defaults部分中设置它。

答案2

在你的前端你可以使用如下命令:

http-request set-header TraceId %[rand,hex,bytes(8,8),lower]%[rand,hex,bytes(8,8),lower]%[rand,hex,bytes(8,8),lower]

rand:返回 0 到可能值之间的随机整数。如果未指定,则默认为 2^32(4294967295)

相关内容