我有一个 HAProxy 负载平衡器,我想用它来标记具有唯一 ID(X-Unique-ID 标头)的请求,以便我可以关联多个系统中的日志之间的事件。
HAProxy 具有使用unique-id-format
指令执行此操作的功能。文档解释说这仅使用来自日志系统的语法,并继续建议您使用客户端和服务器 IP 地址、时间戳等内容来构建可能是唯一的东西。
我想知道是否可以为每个请求生成一个随机(版本 4)UUID(或类似的东西),而不是生成一个具有潜在敏感客户端信息(如 IP 地址和请求时间)的 UUID。
从 HAProxy 2.0 开始
uuid()
功能可用。所以这应该完全符合您的需要:
使用
unique-id-header
而不是 , 的一个优点http-request set-header
是您可以在defaults
部分中设置它。在你的前端,你可以使用这样的东西:
rand:返回一个 0 到可能值的随机整数。如果未指定,则默认为 2^32 (4294967295)