HAProxy - SSL SNI带来的不便

时间:2017-02-12 13:01:17

标签: ssl haproxy

当我尝试配置SSL SNI时,我在haproxy 1.5中发现了一些不便。

有一个haproxy配置片段:pastebin

我想将客户端IP传递给后端。无论我如何配置reqadd / set-header X-Forwarded-For / Real-IP,我总是在X-Forwarded-For中获得一个haproxy IP地址。

有人尝试在HAProxy上使用SSL SNI传递真实IP ? :/

1 个答案:

答案 0 :(得分:0)

从这种配置来看,你似乎正在进行SNI嗅探,但是所有的后端都循环回到HAProxy本身......这不是需要SNI嗅探的情况。也许我忽略了需要这个的其他东西。

显而易见,为什么要在X-Forwarded-For中获取代理的IP - HAProxy正在与自己对话。第一次通过代理客户端连接,只要代理可以在第二次传递时确定,因为只有第二次传递正在说HTTP。它只能看到传入的TCP连接已经从它自己到达。

解决方案是让第一遍后端使用代理协议和第二遍前端传递原始客户端信息进行解码。

accept-proxy行添加到第二遍前端的bind行,并将send-proxy添加到第一遍后端的server行。这样,在HAProxy与自身通信的连接上,第一次传递后端将发送代理协议前导码,第二次传递前端将解码传入值并将其置于X-Forwarded-For