Привязка внешнего IP-адреса к серверу Rabbit MQ - PullRequest
7 голосов
/ 24 августа 2011

У меня есть поле A, и на нем есть потребитель, который прослушивает сервер Rabbit MQ

У меня есть поле B, которое опубликует сообщение для слушателя

Так что, пока все это на коробке А, и я запускаю Rabbit MQ server с настройками по умолчанию, он работает нормально.

По умолчанию это host = 127.0.0.1 на порту 5672, но когда я telnet box.a.ip.addy 5672 из коробки B я получаю:

Trying  box.a.ip.addy...
telnet: connect to address  box.a.ip.addy: No route to host
telnet: Unable to connect to remote host: No route to host

Telnet на порт 22 в порядке, я могу SSH в Box A из Box B

Итак, я предполагаю, что мне нужно изменить IP-адрес, который использует сервер RabbitMQ. Я нашел это: http://www.rabbitmq.com/configure.html и теперь у меня есть файл конфигурации в расположении, которое, как сказано, используется в документации, с именем rabbitmq.config, и он содержит:

[
    {rabbit, [{tcp_listeners, {"box.a.ip.addy", 5672}}]}
].

Итак, я остановил сервер и снова запустил сервер RabbitMQ. Это не удалось. Вот ошибки из журналов ошибок. Это немного над моей головой. (на самом деле большая часть этого есть)

=ERROR REPORT==== 23-Aug-2011::14:49:36 ===
FAILED
Reason: {{case_clause,{{"box.a.ip.addy",5672}}},
         [{rabbit_networking,'-boot_tcp/0-lc$^0/1-0-',1},
          {rabbit_networking,boot_tcp,0},
          {rabbit_networking,boot,0},
          {rabbit,'-run_boot_step/1-lc$^1/1-1-',1},
          {rabbit,run_boot_step,1},
          {rabbit,'-start/2-lc$^0/1-0-',1},
          {rabbit,start,2},
          {application_master,start_it_old,4}]}

=INFO REPORT==== 23-Aug-2011::14:49:37 ===
    application: rabbit
    exited: {bad_return,{{rabbit,start,[normal,[]]},
                         {'EXIT',{rabbit,failure_during_boot}}}}
    type: permanent

и вот еще немного из журнала запуска:

Erlang has closed
Error: {node_start_failed,normal}
^M
Crash dump was written to: erl_crash.dump^M
Kernel pid terminated (application_controller) ({application_start_failure,rabbit,{bad_return,{{rabbit,start,[normal,[]]},{'EXIT',{rabbit,failure_during_boot}}}}})^M

Пожалуйста, помогите

Ответы [ 2 ]

9 голосов
/ 24 августа 2011

вы пробовали добавить?

RABBITMQ_NODE_IP_ADDRESS = box.a.ip.addy

в файл /etc/rabbitmq/rabbitmq.conf?

За http://www.rabbitmq.com/configure.html#customise-general-unix-environment

Также в этой документации говорится, что по умолчанию используется привязка ко всем интерфейсам. Возможно, в вашей системе уже задан параметр конфигурации или переменная среды, чтобы ограничить сервер локальным хостом, переопределяя все, что вы делаете.

ОБНОВЛЕНИЕ: После повторного чтения я понимаю, что telnet должен был вернуть «Отказ в соединении», а не «Нет маршрута к хосту». Я также проверил бы, нет ли у вас проблемы с брандмауэром.

0 голосов
/ 09 сентября 2014

Вам необходимо открыть порт tcp на брандмауэре

Используя Linux, найдите файл конфигурации iptables:

eric@dev ~$ find / -name "iptables" 2>/dev/null
/etc/sysconfig/iptables

Редактировать файл:

sudo vi /etc/sysconfig/iptables

Исправьте файл, добавив порт:

# Generated by iptables-save v1.4.7 on Thu Jan 16 16:43:13 2014
*filter
-A INPUT -p tcp -m tcp --dport 15672 -j ACCEPT
COMMIT
...