アップストリームソースからレイヤー4プロキシプロトコルを受信しているHAProxyを実行しています。そこに含まれるアドレスを使用してカスタムHTTPヘッダーを作成する必要があります。そのTCPヘッダーを参照する方法が見つからないようです。
以下は私がやろうとしていることのサンプルです:
frontend http_in
bind *:1025 accept-proxy
mode http
default_backend http_out
backend http_out
mode http
http-request set-header X-Custom-Header %[<ip from proxy protocol header>]
server some-server some-server:80
スプーフィング可能なhttpヘッダーではなく、L4ヘッダーのアドレスを新しいヘッダーに入力していることを確認するにはどうすればよいですか?
accept-proxy
バインドオプションの docs 、より一般的にはPROXYプロトコルの使用法に基づいて、PROXYプロトコルヘッダーに含まれるすべてのフィールド(送信元IPとポート、宛先IPとポート) )実際の接続からのものを置き換えます。
.。
PROXYプロトコルは、着信のレイヤー3/4アドレスを指示します
アドレスが使用されるすべての場所で使用される接続。
「tcp-requestconnection」ルールの例外。
実際の接続アドレス。ログには、に示されているアドレスが反映されます
プロトコルに違反していない限り、プロトコルに違反している場合は、実際のアドレス
は引き続き使用されます。
.。
バックエンドが次のようになることを意味します
backend http_out
mode http
http-request set-header X-Custom-Header %[src]
server some-server some-server:80
これが機能するのは、src
サンプルフィールドに、実際のソースIPではなく、PROXYヘッダーで定義されているソースIPが含まれるためです。