HAProxy - SSL SNI 不便
HAProxy - SSL SNI inconvenience
当我尝试配置 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
? :/
从这个配置来看,您似乎在做 SNI-sniffing,但所有后端都在循环回 HAProxy 本身……这不是需要 SNI-sniffing 的情况。也许我忽略了其他需要这个的东西。
在 X-Forwarded-For
中获取代理 IP 的原因应该很明显——HAProxy 正在与自己对话。第一次通过代理 是 客户端连接,只要代理可以在第二次通过时确定,因为只有第二次通过 HTTP。它只看到传入的 TCP 连接已经到达...来自它自己。
解决方案是 first-pass 后端使用代理协议传递原始客户端信息,然后 second-pass 前端对其进行解码。
将 accept-proxy
添加到 second-pass 前端的 bind
行,并将 send-proxy
添加到 first-pass 前端的 server
行后端。这样,在 HAProxy 与自身对话的连接上,first-pass 后端将发送 Proxy 协议前导码,而 second-pass 前端将解码传入值并将其放入 X-Forwarded-For
。
当我尝试配置 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 ? :/
从这个配置来看,您似乎在做 SNI-sniffing,但所有后端都在循环回 HAProxy 本身……这不是需要 SNI-sniffing 的情况。也许我忽略了其他需要这个的东西。
在 X-Forwarded-For
中获取代理 IP 的原因应该很明显——HAProxy 正在与自己对话。第一次通过代理 是 客户端连接,只要代理可以在第二次通过时确定,因为只有第二次通过 HTTP。它只看到传入的 TCP 连接已经到达...来自它自己。
解决方案是 first-pass 后端使用代理协议传递原始客户端信息,然后 second-pass 前端对其进行解码。
将 accept-proxy
添加到 second-pass 前端的 bind
行,并将 send-proxy
添加到 first-pass 前端的 server
行后端。这样,在 HAProxy 与自身对话的连接上,first-pass 后端将发送 Proxy 协议前导码,而 second-pass 前端将解码传入值并将其放入 X-Forwarded-For
。