Haproxy

HAProxy 可以生成基於 UUID 的唯一連接 ID 嗎?

  • November 27, 2020

我有一個 HAProxy 負載平衡器,我想用它來標記具有唯一 ID(X-Unique-ID 標頭)的請求,以便我可以關聯多個系統中的日誌之間的事件。

HAProxy 具有使用unique-id-format指令執行此操作的功能。文件解釋說這僅使用來自日誌系統的語法,並繼續建議您使用客戶端和伺服器 IP 地址、時間戳等內容來建構可能是唯一的東西。

我想知道是否可以為每個請求生成一個隨機(版本 4)UUID(或類似的東西),而不是生成一個具有潛在敏感客戶端資訊(如 IP 地址和請求時間)的 UUID。

從 HAProxy 2.0 開始uuid()功能可用。

所以這應該完全符合您的需要:

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

使用unique-id-header而不是 , 的一個優點http-request set-header是您可以在defaults部分中設置它。

在你的前端,你可以使用這樣的東西:

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)

引用自:https://serverfault.com/questions/1014666