我有一个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
之前,你必须运行它,但是它应该可以工作。