У меня есть сервер 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-адрес.