Назад | Перейти на главную страницу

HAproxy с RabbitMQ - как получить информацию об IP-адресе клиента в RabbitMQ?

У меня есть сервер rabbitMQ за сервером haproxy. И все клиенты подключены через HAproxy к RabbitMQ и используют TCP.

Проблема заключается в том, что соединение rabbitMQ показывает, что все соединения поступают с одного и того же IP-адреса сервера Haproxy.

Как я могу передать IP-адрес клиента через HAproxy?

Я пробовал связать с прозрачными параметрами send-proxy, send-proxy-v2 в конфигурации haproxy.

Тем не менее, я не мог получить IP-адрес клиента, переданный на сервер RMQ. Есть предположения?

Вы не можете ничего изменить в haproxy или RabbitMQ, чтобы получить информацию о клиенте. Что касается RabbitMQ, соединение действительно было через haproxy. Но вы можете изменить подключение клиента, чтобы предоставить информацию о себе.

В соответствии с эта проблема GitHub, вы можете использовать что-то вроде этого:

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

В зависимости от вашей библиотеки / клиента его можно назвать client-properties, client_properties или clientproperties.

Установив clientProperties, если вы посмотрите список подключений или воспользуетесь rabbitmqctl list_connections client_properties, появится настоящий IP-адрес.