我有一个方框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
请帮忙
答案 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