HAproxy与RabbitMQ – 如何获取RabbitMQ中的客户端IP信息?

我有一个haproxy服务器后面的rabbitMQ服务器。 所有的客户端通过HAproxy连接到RabbitMQ并使用TCP。

当rabbitMQ连接显示所有连接来自Haproxy服务器的相同ip时,挑战是什么。

我怎样才能让客户端IP通过HAproxy?

我尝试在haproxyconfiguration中使用透明,发送代理,send-proxy-v2选项进行绑定。

仍然我不能让客户端IP传递给RMQ服务器。 有什么想法吗?

您无法更改haproxy或RabbitMQ上的任何内容来获取客户端信息。 就RabbitMQ而言,连接确实来自haproxy。 但是您可以更改客户端连接以提供有关他自己的信息。

根据这个GitHub的问题 ,你可以使用这样的东西:

var amqp = require('amqplib'); amqp.connect('amqp://localhost', {clientProperties: {'IP': '10.0.0.3'}}).then(...); 

根据你的lib / client,它可能被称为client-propertiesclient_properties或者clientproperties

通过设置clientProperties ,如果您查看连接列表或使用rabbitmqctl list_connections client_properties ,将显示真实的IP。