访问HAProxy中的代理协议地址

我正在运行从上游源接收第4层代理协议的HAProxy。 我需要创build一个自定义的HTTP头,其中包含的地址。 我似乎无法find我如何可以引用该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 

我怎样才能确保我用L4头的地址填充新的头,而不是一些可欺骗的HTTP头?

根据accept-proxy绑定选项的文档 ,以及更一般地使用PROXY协议,PROXY协议头(源IP和端口,目标IP和端口)中包含的所有字段replace来自真实连接的字段:


PROXY协议规定了input的3/4层地址
连接到处使用的地址是唯一的
例外的“tcp-request连接”规则将只能看到
真正的连接地址。 日志将反映在中指出的地址
该协议,除非它被违反,在这种情况下,真正的地址
仍然会被使用。

这意味着你的后端看起来像

 backend http_out mode http http-request set-header X-Custom-Header %[src] server some-server some-server:80 

这是有效的,因为src示例字段将包含PROXY头中定义的源IP,而不是实际的源IP。