根据请求头添加haproxy响应头

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

 http-request set-header Host internal.example 

不过,我仍然希望后端可以访问原始的Host头。 我认为X-Forwarded-Host是一个很好的select,但是我正在努力想办法做到这一点。

我正在使用这个工作:

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

但当然这是一个巨大的黑客 – 不会超过64个字符的工作,如果我需要捕获另一个头,将无法正常工作。

有没有更好的办法?

正如Joel E Salas通过评论所提到的,更改Host标头是一件很奇怪的事情,但是我想如果后端只能理解某些值,那么它可能是有意义的。

在任何情况下,您都可以使用req.hdr提取样本作为http-request的variables,因此:

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

在运行重写Host头部的http-request set-header之前,你必须运行它,但是它应该可以工作。