问题描述:
RabbitMQ使用guest登录管理页面的时发现一个问题,问题如下图所示
- 当使用http://localhost:15672 ,登录成功
- 当使用http://192.168.XX.XX:15672时,提示User can only log in via localhost
原因分析:
在RabbitMQ Server\rabbitmq_server-3.7.14\etc下的rabbitmq.config或者 rabbitmq.config.example 文件信息中,查到了问题原因, 配置文件中存在以下说明
%% The default "guest" user is only permitted to access the server
%% via a loopback interface (e.g. localhost).
%% {loopback_users, [<<"guest">>]},
%%
%% Uncomment the following line if you want to allow access to the
%% guest user from anywhere on the network.
%% {loopback_users, []},
rabbitmq配置说明中的意思是: 默认用户guest被仅限于localhost接入访问, 如果想要guest用户从其他任何网络接入需要将{loopback_users, [<<"guest">>]},配置修改为{loopback_users, []},以去掉了guest用户访问限制,
需要注意的是这个配置并不再当前文件(rabbitmq.config)中,此配置在 RabbitMQ Server\rabbitmq_server-3.7.14\ebin\rabbit.app
解决方案:
本问题是由于rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问引起,按照配置说明提供方法处理即可
1. 修改RabbitMQ Server\rabbitmq_server-3.7.14\ebin\rabbit.app 文件中loopback_users信息
{loopback_users, [<<"guest">>]},
修改为以下配置,即去掉了guest用户限制
{loopback_users, []},
2. 重启RabbitMQ Service ,
C:\Windows\system32>cd C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.14\sbin
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.14\sbin>net stop RabbitMQ && net start RabbitMQ
RabbitMQ 服务正在停止......
RabbitMQ 服务已成功停止。
RabbitMQ 服务正在启动 .
RabbitMQ 服务已经启动成功。