已在新安装的Centos 5.10虚拟机上按照官方网站的提示安装了最新版本的RabbitMQ服务器(RabbitMQ -server-3.3.0-1.noarch.rpm)。
在开发过程中,我已经这么做过很多次了,从来没有遇到过任何问题。但是这次无法使用默认的guest/guest用户登录管理web界面。
在日志中,我看到了以下内容:
=ERROR REPORT==== 4-Apr-2014::00:55:15 ===
webmachine error: path="api/whoami"
"Unauthorized"
是什么导致了这种情况?
这是自3.3.0版本以来的新功能
http://www.rabbitmq.com/release-notes/README-3.3.0.txt
server
------
...
25603 prevent access using the default guest/guest credentials except via
localhost.
如果你想启用guest用户读这个或者这个RabbitMQ 3.3.1不能登录guest/guest
# remove guest from loopback_users in rabbitmq.config like this
[{rabbit, [{loopback_users, []}]}].
# It is danger for default user and default password for remote access
# better to change password
rabbitmqctl change_password guest NEWPASSWORD
如果你想创建一个具有管理员权限的新用户:
rabbitmqctl add_user test test
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
现在您可以使用test test进行访问。
刚刚发生在我身上的一件事让我头疼:
我已经设置了一个新的Linux RabbitMQ服务器,并使用shell脚本来设置我自己的自定义用户(不是guest!)
脚本有几个这样的“代码”块:
rabbitmqctl add_user test test
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
和Gabriele的回答非常相似,所以我用了他的代码,不需要修改密码。
我仍然无法登录管理控制台。然后我注意到我已经在Windows中创建了安装脚本(CR+LF行结束),并将该文件转换为Linux(仅限LF),然后在我的Linux服务器上重新运行安装脚本。
... 仍然无法登录,因为又花了15分钟,直到我意识到反复调用add_user不会修复损坏的密码(可能以CR字符结束)。我必须为每个用户调用change_password来修复我之前的错误:
rabbitmqctl change_password test test
(另一种解决方案是删除所有用户,然后再次调用脚本)