web-dev-qa-db-ja.com

haproxy X-Forwarded-Hostリクエストヘッダーを追加

http-request set-headerを使用してHostヘッダーを内部のヘッダーに書き換えるHaproxyインスタンスがあります。

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文字を超えると機能せず、別のヘッダーをキャプチャする必要がある場合は機能しません。

もっと良い方法はありますか?

4
steveh7

Joel E Salasがコメントで述べたように、Hostヘッダーを変更するのは少し奇妙なことですが、バックエンドが特定の値しか理解していない場合は、それが意味をなすと思います。

いずれの場合でも、req.hdrフェッチサンプルをhttp-requestへの変数として使用できます。

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

Hostヘッダーを書き換えるhttp-request set-headerを実行する前に実行する必要がありますが、機能するはずです。

4
GregL