rabbitmq对虚拟主机的访问被拒绝

时间:2018-10-21 15:48:36

标签: rabbitmq openstack rabbitmqctl

我在运行Rabbitmq-server的情况下设置了控制器主机。从新星宿主中,我看到无法接触到新星导体。我检查了控制器主机,并在日志中看到以下内容:

  access to vhost 'None' refused for user 'openstack'

我在控制器主机上对Rabbitmq具有以下配置设置:

    rabbitmqctl list_users
    Listing users ...
    guest   [administrator]
    openstack       []

当我列出权限时,我看到openstack可以访问所有资源

    list_permissions
    Listing permissions in vhost "/" ...
    guest   .*      .*      .*
    openstack       .*      .*      .*

我能够通过Rabbitmq服务器进行身份验证-只是无法访问/ vhost。对于调试,我想进行设置,以便任何客户端都可以访问任何资源(完全关闭访问控制)。那有可能吗。

谢谢

3 个答案:

答案 0 :(得分:1)

access to vhost 'None' refused for user 'openstack'

某事正在尝试访问名为None的虚拟主机,该虚拟主机不存在。默认虚拟主机名为/。由于None是Python中的关键字,我怀疑某个地方存在应用程序错误或配置错误。

不可能禁用访问控制,所以我建议创建一个众所周知的用户和密码来使用。

答案 1 :(得分:1)

这是由Kombu或oslo.messages中相对较新的更改引起的。以前,如果未提供virtual_host,它将默认为/。这已不再是这种情况。

要使其正常工作,您的transport_url至少需要至少有一个/

  

transport_url =兔子:// stackrabbit:secretrabbit@127.0.0.1:5672 /

例如,您可以参考devstack here作为参考。

此问题的实际上游修补程序可用here

答案 2 :(得分:0)

您还可以将http请求发送到虚拟主机,以获取/设置用户权限。您必须将主机名指定为url的一部分,但是由于默认虚拟主机为'/',因此您必须将其替换为'%2F' http:// / api / vhosts /%2F / permissions

例如

 curl -i -u guest:guest -h "content-type:application/json" -GET http://localhost:15672/api/permissions/%2F/guest

您可以转到 http:// /api/index.html

找到api选项的完整列表。