`

解决RabbitMQ远程不能访问的问题

 
阅读更多
  刚刚安装的RabbitMQ-Server-3.3.5,并且也已经开启了Web管理功能,但是现在存在一个问题:
出于安全的考虑,guest这个默认的用户只能通过http://localhost:15672 来登录,不能使用IP地址登录,也就是不能远程访问,这对于服务器上没有安装桌面的情况是无法管理维护的。





要解决这个问题需要配置远程登录权限,这里通过配置文件来实现远程访问。
    这里主要介绍Unix和Windows的配置文件修改。

一、Windows

Windows环境下默认配置文件为目录/%RabbitMQ Server%/rabbitmq_server-3.3.5/etc下的rabbitmq.config.example文件,我们可以直接在这个文件中修改(可以不用去设置环境变量了),也可以自己再新建一个rabbitmq.config文件,然后把这个文件路径配置到环境变量中,这里介绍就直接修改rabbitmq.config.example文件。
    注意:修改之前,需要先停止RabbitMQ服务!!不然是不能保存的!!!
配置之前需要先添加用户,用于外网的访问,可以使用命令行来实现添加用户,需要在RabbitMQ的安装目录sbin目录下执行:
引用
duanwf@master:/opt/rabbitmq_server-3.3.5/sbin$ rabbitmqctl add_user admin admin


也可以通过web管理页面来添加用户和密码,使用guest登录web管理页面http://localhost:15672,进入“admin”标签页,然后点击“Add a user ”,输入对用的帐号密码,然后选择用户角色(一定要选择):



为了授权该用户对VirtualHost"/" 的访问,用户添加之后,需要对该用户进行授权,不然运行会出现错误

引用
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=403, reply-text=ACCESS_REFUSED - access to queue 'hello' in vhost '/' refused for user 'admin', class-id=50, method-id=10), null, ""}


 详细错误日志为:
java.io.IOException
 at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
 at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
 at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)
 at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:766)
 at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:61)
 at com.asiainfo.mq.rabbitmq.rabbitmqtest.SendTest.main(SendTest.java:29)
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=403, reply-text=ACCESS_REFUSED - access to queue 'hello' in vhost '/' refused for user 'admin', class-id=50, method-id=10), null, ""}
 at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
 at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
 at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:343)
 at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:216)
 at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)
 ... 3 more
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; reason: {#method<channel.close>(reply-code=403, reply-text=ACCESS_REFUSED - access to queue 'hello' in vhost '/' refused for user 'admin', class-id=50, method-id=10), null, ""}
 at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:473)
 at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:313)
 at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144)
 at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91)
 at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:533)


操作过程为:在Admin标签页下点击新增的用户"admin",进入授权页面,默认直接点击"set permission"即可:



用户以及授权添加完成之后,在rabbitmq.config.example文件中,添加以下内容,保存后重启RabbitMQ服务:

……
[
 {rabbit,
  [%%
   %% Network Connectivity
   %% ====================
   %%
   %% By default, RabbitMQ will listen on all interfaces, using
   %% the standard (reserved) AMQP port.
   %%
   {tcp_listeners, [5672]},
   {loopback_users, ["admin"]},
……
  ]}
].

在浏览器中输入http://192.168.0.124:15672实现通过IP地址访问,成功登录:



参考:http://dwf07223.blog.51cto.com/8712758/1547226
分享到:
评论

相关推荐

    RabbitMq安装教程.pdf

    安装完成后,需要创建一个配置文件rabbitmq.config,并设置loopback_users参数为空,这意味着允许远程访问。接下来,配置RabbitMQ服务为开机自启动,并启动RabbitMQ服务。 为了方便管理RabbitMQ,可以启用RabbitMQ ...

    rabbitmq学习笔记和软件和插件

    例如,如果你的RabbitMQ服务器只监听本地接口,你可以用socat创建一个端口转发,让远程机器也能访问到RabbitMQ的管理API。 **四、RabbitMQ学习资源** “尚硅谷”的学习笔记提供了关于RabbitMQ的详细教程,涵盖了...

    rabbitmq安装.zip

    5. **设置默认用户和权限**:RabbitMQ默认不开启 guest 用户的远程访问,为了安全,需要创建新的用户并赋予适当的权限。可以使用`rabbitmqctl add_user`、`rabbitmqctl set_permissions`等命令进行操作。 6. **安装...

    RabbitMQ安装配置1

    7. **解决 CentOS 6.7 安装问题**: - 如果遇到 `{missing_dependencies,[crypto,ssl]}` 错误,可能需要重新安装 OpenSSL。 - 安装 OpenSSL,修改 Makefile 添加 `-fPIC`,然后重新编译和安装。 - 重新安装 ...

    LinuxCentOS7版本RabbitMQ3.8.9带erlang+socat

    在 RabbitMQ 中,它可能不是直接必需的,但在某些场景下,比如连接远程 RabbitMQ 服务器或解决网络隔离问题时, socat 可能会派上用场。 配置 RabbitMQ 的过程中,你可能需要创建用户、虚拟主机和权限。这可以通过 ...

    rabbitmq教程

    - 调整配置文件允许远程访问: ```sh vi /etc/rabbitmq/rabbitmq.config ``` 注意去除逗号,并确保配置正确。 4. **启动管理插件** - 启用管理插件: ```sh rabbitmq-plugins enable rabbitmq_management ...

    rabbitmq安装

    【RabbitMQ安装详解】 ...通过以上步骤,你应该能在CentOS 6.5上成功安装并配置RabbitMQ,包括开启Web管理界面并解决远程访问问题。请注意,安全最佳实践是创建新的用户和虚拟主机,而不是依赖于默认的`guest`用户。

    RabbitMQ测试工具

    3. **系统监控**:实时查看RabbitMQ服务器的状态,提前发现和解决潜在问题。 4. **运维诊断**:在遇到问题时,利用工具进行诊断,如检查队列积压、交换机配置错误等。 **最佳实践** 1. **合理规划消息路由**:...

    RabbitMQ:安装、配置与使用初探

    为了能够在远程访问 RabbitMQ,需要创建新的用户。 进入 RabbitMQ 的 bin 目录,通过命令行创建新用户,并设置其为管理员: ```bash cd /usr/lib/rabbitmq/bin rabbitmq-server start ./rabbitmqctl add_user ...

    ContenOS 7 中 RabbitMQ 环境安装与搭建(单机版,以rpm 方式安装)———3.8.x 版本.pdf

    - 如果rpm包的安装信息中包含默认安装路径,说明不能更改安装位置,直接使用rpm-ivh命令安装即可。 - 如果需要指定安装路径,可以使用rpm-ivh--prefix=/指定的目录命令来安装rpm包。 - 安装成功后,可以通过erl -...

    RabbitMQ Linux 安装

    例如,为了允许远程访问,需要修改配置文件中的相应设置。 - **启动 RabbitMQ 服务** 安装完成后,可以通过以下命令启动 RabbitMQ 服务: ```bash service rabbitmq-server start ``` 查看服务状态: ```...

    RabbitMQ.pptx介绍RabbitMQ具体事项

    RabbitMQ是一款广泛使用的开源消息代理服务器,它的主要任务是实现系统间的解耦,通过消息队列技术来传递信息。消息队列(MQ)是一种通信机制,...无论是小型项目还是大型企业级应用,RabbitMQ都能提供稳定的解决方案。

    rabbitmq centos7 安装笔记 亲测成功安装.docx

    如果你需要远程访问,需要创建新用户或修改`rabbitmq.config`文件以允许`guest`用户远程登录。同时,别忘了开放防火墙端口,如15672(HTTP管理界面)和5672(AMQP协议端口)。 8. **验证安装**: 打开浏览器,访问...

    RabbitMQ3.8.3及相关依赖

    确保先安装Erlang,然后安装RabbitMQ,解决所有依赖问题,并启动和配置服务,即可开始利用RabbitMQ实现消息队列的功能。在实际应用中,RabbitMQ可以帮助优化系统性能,提高系统的可靠性和灵活性。

    rabbitmq-server-3.6.14-1.el7.noarch.rpm

    3. 配置RabbitMQ以允许远程访问或设置用户权限。 4. 使用`rabbitmq-plugins enable rabbitmq_management`启用Web管理界面,方便监控和管理RabbitMQ服务器。 在RabbitMQ中,有以下几个关键概念: - **节点(Node)**...

    rabbitmq面试题.pdf

    如何诊断和解决RabbitMQ的消息问题?** - 利用日志和监控工具定位问题原因。 - 优化消息处理逻辑和配置参数。 **45. 如果RabbitMQ的节点宕机,如何恢复?** - 通过故障转移机制自动切换到其他可用节点。 - 手动...

    RabbitMQ实战.doc

    4. 配置远程访问: - 创建新用户并设置其角色和权限,允许远程登录。 三、为什么使用 RabbitMQ? RabbitMQ 解决了在高并发、高负载场景下,系统间通信的延迟和可靠性问题。通过引入消息队列,生产者可以快速发送...

    RabbitMQ超级详解(附带常见问题及答案、安装流程、基础知识、高级特性、实战案列)-用这一篇就够了

    4. **启动RabbitMQ**:使用`rabbitmq-server start`命令启动服务,如果一切顺利,服务应该能成功启动。 5. **验证安装**:通过`rabbitmq-plugins list`检查插件是否安装正确,然后访问`http://localhost:15672`查看...

    rabbitmq安装文档

    为了远程访问,你需要创建新用户并赋予相应的权限。打开RabbitMQ控制台: ```bash sudo rabbitmqctl add_user myuser mypassword sudo rabbitmqctl set_user_tags myuser administrator sudo rabbitmqctl set_...

    Rabbitmq的安装和集群的搭建

    在实际部署中,为了能够远程访问管理和监控界面,需要设置合适用户的权限,并通过防火墙设置允许外部访问。对于监控集群状态,每台服务器上都可能需要运行相应的命令来获取状态信息,以便于在集群的管理界面上进行...

Global site tag (gtag.js) - Google Analytics