从 HAProxy 中的 Referer Header 字段中提取参数
Extracting params from the Referer Header field in HAProxy
我知道我可以在 HAProxy 中使用 url_param / urlp 从请求的 URL 中提取 query parameters
。
但是,我需要类似的函数来从作为 HTTP Header 字段 Referer
发送的 URL 中提取参数。我想 url_param
仅适用于请求的 URL,而不能用于 HTTP Header 值?如果是这样,我还有哪些其他选择?我需要从查询参数中检索值并将其作为特定 HTTP Header 发送到后端服务器。
分享我的解决方案(虽然我不确定这是最有效和准确的方法)。我用正则表达式解决了它。
# Example HTTP Referer: http://myexample.com/users?user-id=12345
# ACL
acl is_uid_in_hdr_referer hdr_sub(Referer) -i user-id
# Set value from query param "user-id" from Referer header to custom header "user-id"
http-request set-header user-id %[req.hdr(Referer),regsub(.+?user-id=,,g)] if is_uid_in_hdr_referer
我知道我可以在 HAProxy 中使用 url_param / urlp 从请求的 URL 中提取 query parameters
。
但是,我需要类似的函数来从作为 HTTP Header 字段 Referer
发送的 URL 中提取参数。我想 url_param
仅适用于请求的 URL,而不能用于 HTTP Header 值?如果是这样,我还有哪些其他选择?我需要从查询参数中检索值并将其作为特定 HTTP Header 发送到后端服务器。
分享我的解决方案(虽然我不确定这是最有效和准确的方法)。我用正则表达式解决了它。
# Example HTTP Referer: http://myexample.com/users?user-id=12345
# ACL
acl is_uid_in_hdr_referer hdr_sub(Referer) -i user-id
# Set value from query param "user-id" from Referer header to custom header "user-id"
http-request set-header user-id %[req.hdr(Referer),regsub(.+?user-id=,,g)] if is_uid_in_hdr_referer