将外部IP地址绑定到Rabbit MQ服务器

时间:2011-08-23 21:55:33

标签: ip rabbitmq

我有一个方框A,它上面有一个用户监听Rabbit MQ服务器

我有方框B,它会向听众发布消息

因此,只要在方框A和I上的所有内容都启动Rabbit MQ服务器w / defaults就可以正常工作。

端口5672上的默认值为host = 127.0.0.1,但是 当我从方框B telnet box.a.ip.addy 5672得到:

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
端口22上的telnet很好,我可以从Box B ssh到Box A

所以我假设我需要更改RabbitMQ服务器使用的ip 我发现了这个: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 个答案:

答案 0 :(得分:9)

你尝试过添加吗?

RABBITMQ_NODE_IP_ADDRESS = box.a.ip.addy

到/etc/rabbitmq/rabbitmq.conf文件?

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

此外,根据此文档,它指出默认绑定到所有接口。可能在您的系统中已经设置了配置设置或环境变量,以将服务器限制为localhost,从而覆盖您执行的任何操作。

UPDATE:再次阅读后,我意识到telnet应该返回“Connection Refused”而不是“No route to host”。我还会检查你是否遇到了与防火墙有关的问题。

答案 1 :(得分:0)

您需要打开防火墙上的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