从Stingray负载均衡器后面的Node.js获取客户端IP

时间:2012-07-06 19:22:28

标签: node.js express load-balancing

我们在黄貂鱼负载均衡器后面运行多个节点实例。我们的node.js应用程序运行Express.js。当我们访问req.connection.remoteAddress时,它会返回我们的黄貂鱼设备的IP。

有谁知道如何转发客户端IP?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果此信息未过期,则X-Cluster-Client-Ip标头应包含原始ip。

var remoteAddress = req.header('X-Cluster-Client-Ip');

此处引用了其他选项:

http://community.riverbed.com/t5/Articles/IP-Transparency-with-Stingray-software-04-12-2006/td-p/22646

答案 1 :(得分:0)

接受的答案中的链接不再起作用,所以只要添加一个,如果你在Stingray级别启用了Transparency选项,那么请求将看起来像是来自原始IP而不是负载均衡器的后端。这样你就可以避免将其从其他环境变量中拉出来,并避免在变量中处理多个“原始”IP。

'transparent'选项位于池的连接管理属性中。