芹菜BROKER_URL与vhosts无法正确识别

时间:2016-08-30 18:26:28

标签: python django celery

我通过BROKER_URL连接到RabbitMQ vhost时遇到问题。我的vhost名称是navarro,rabbitmqctl显示:

 $ rabbitmqctl list_vhosts
 /
 navarro
 $

然而,

BROKER_URL = 'amqp://guest:guest@localhost:5672/navarro'

我在我的日志文件中得到error: [Errno 104] Connection reset by peer"access to vhost '/' refused for user 'guest'"(仅为我的vhost配置了guest,请注意它不是auth问题,而是问题的vhost问题)。

如果我使用

BROKER_URL = 'amqp://guest:guest@localhost:5672//navarro'

我得到了

"access to vhost '/navarro' refused for user 'guest'"

这是有道理的,因为没有vhost /navarro。但是如何连接到实际的主机navarro

写这篇文章我的想法是允许用户也在' /',让你知道它是否有帮助。

这很有帮助,因为任务最终会在' /' vhost而不是navarro中的一个。但是,使用应用程序启动Celery会连接到正确的队列。我认为这两个位置都是由相同的设置定义的。

1 个答案:

答案 0 :(得分:0)

没有足够的回复评论,所以留下答案。

您确定用户guest是否拥有vhost的权限?你做了什么来确保他做到了?

您可以运行: rabbitmqctl set_permissions -p navarro guest ".*" ".*" ".*"

进入虚拟主机的第一种方式是正确的(只有一个/)。