添加 haproxy X-Forwarded-Host 请求标头

添加 haproxy X-Forwarded-Host 请求标头

我有一个 Haproxy 实例,它Host使用将标题重写为内部标题http-request set-header

http-request set-header Host internal.example

但是,我仍然希望后端能够访问原始Host标头。我认为X-Forwarded-Host这是一个很好的选择,但是我正在努力弄清楚如何做到这一点。

我正在使用这个,它有效:

capture request header Host len 64
http-request set-header X-Forwarded-Host %hrl

但这当然是一种巨大的黑客攻击 - 无法处理超过 64 个字符,而且如果我需要捕获另一个标题它也无法工作。

有没有更好的办法?

答案1

正如 Joel E Salas 在评论中提到的那样,更改Host标题是一件稍微奇怪的事情,但我想如果后端只理解某些值,它可能会有意义。

无论如何,您都可以req.hdr将获取的样本用作变量http-request,如下所示:

http-request set-header X-Forwarded-Host %[req.hdr(Host)]

您必须在运行http-request set-header重写标题之前运行它Host,但它应该可以工作。

相关内容