【发布时间】:2014-05-21 00:28:07
【问题描述】:
我正在使用 python lib pika,fow 与 rabbitmq 一起使用。
RabbitMq 正在运行并听 0.0.0.0:5672,我尝试从另一台服务器连接到他,但出现异常:
socket.timeout:超时
使用来自官方文档RabbitMQ(Hello, World)的Python代码
我尝试禁用 iptables。
但是,如果我使用主机"localhost" 运行脚本,那么一切都很好。
我的 /etc/rabbitmq/rabbitmq.config
[
{rabbit, [
{tcp_listeners,[{"0.0.0.0",5672}]}
]}
].
代码:
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='192.168.10.150', port=5672, virtual_host='/', credentials=pika.credentials.PlainCredentials('user', '123456')))
channel = connection.channel()
channel.queue_declare(queue='task_queue', durable=True)
message = "Hello World!"
channel.basic_publish(exchange='',
routing_key='task_queue',
body=message,
properties=pika.BasicProperties(
delivery_mode = 2, # make message persistent
))
print " [x] Sent %r" % (message,)
connection.close()
【问题讨论】:
-
你能贴出你用来连接远程rabbit服务器的python客户端代码吗?您是否在客户端和服务器上都关闭了 iptables?我假设这是 Linux,什么发行版?
-
iptables 在客户端和服务器上关闭。 Debian 7.
-
我在日志文件中发现:用户 'user' 拒绝访问 vhost '/'"
-
服务器上的访客用户是否仍处于活动状态?检查
user的服务器权限。否则,请尝试guest用户使用guest密码。 -
我找到答案,我调整对用户的访问权限