我正在使用 Haproxy 进行负载平衡。
我的网站在 ruby on rails 上运行。
我做了一些谷歌搜索并知道添加这一行
option forwardfor header X-Client
在 /etc/haproxy.cfg 文件中。
在我正在使用的 Rails 应用程序中
request.env["HTTP_X_FORWARDED_FOR"]
但这给了我我的主应用程序 IP
如何获取客户端 IP 地址。
我正在使用 Haproxy 进行负载平衡。
我的网站在 ruby on rails 上运行。
我做了一些谷歌搜索并知道添加这一行
option forwardfor header X-Client
在 /etc/haproxy.cfg 文件中。
在我正在使用的 Rails 应用程序中
request.env["HTTP_X_FORWARDED_FOR"]
但这给了我我的主应用程序 IP
如何获取客户端 IP 地址。
在option forwardfor
指令之上,您还应该使用option http-server-close
. 如果不这样做,HAProxy 只会将标头添加到初始请求中。
如果你这样做并重新启动 HAProxy,它应该可以工作。
我还觉得奇怪的是,您的代码依赖于变量名称“HTTP_X_FORWARDED_FOR”,并且标头名称是 X-Client。请只使用“option forwardfor”,它将设置我认为您的应用程序正在寻找的 X-Forwarded-For 标头。