У меня есть экземпляр 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 символами и не будет работать, если мне когда-нибудь понадобится захватить другой заголовок.
Есть ли способ лучше?
Как отметил Джоэл Э Салас в комментарии, изменение Host
Заголовок - это немного странная вещь, но я полагаю, если бэкенды понимают только определенные значения, это может иметь смысл.
В любом случае вы можете просто использовать req.hdr
получить образец как переменную для http-request
, таким образом:
http-request set-header X-Forwarded-Host %[req.hdr(Host)]
Вам нужно будет запустить это, прежде чем запускать http-request set-header
это переписывает Host
заголовок, но он должен работать.