Linux怎么安装配置RabbitMQ消息队列中间件

浅涛小哥_5233

浅涛小哥_5233

2026-10-02

812人浏览

原创

rabbitmq在linux装不起来90%因erlang版本不匹配或.erlang.cookie权限/内容错误;需三步:确认安装otp≥25.3的erlang、正确安装rabbitmq并补全socat等依赖、启动前严格设置.erlang.cookie(400权限、rabbitmq:rabbitmq属主)和/etc/hosts反向解析。

linux怎么安装配置rabbitmq消息队列中间件

RabbitMQ 在 Linux 上装不起来,90% 是 Erlang 版本不对或 .erlang.cookie 权限/内容出错;直接按下面三步走,能绕过绝大多数卡死、Node 'rabbit@xxx' not running、erl: command not found 问题。

确认并安装匹配的 Erlang 版本

RabbitMQ 3.11+ 强制要求 OTP ≥ 25.3,CentOS 自带的 erlang-24.x 或 Ubuntu apt install erlang 装的旧版会直接导致 rabbitmqctl status 卡住、报 {error,{"no such file or directory","rabbit.app"}}。

  • 先查真实 OTP 版本:erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell —— 输出是 "24" 或更小,必须卸载
  • CentOS/RHEL:用 Cloudsmith 官方 RPM 安装,例如:yum install -y https://github.com/rabbitmq/erlang-rpm/releases/download/v25.3.2.8/erlang-25.3.2.8-1.el7.x86_64.rpm(注意系统版本后缀)
  • Ubuntu:别用默认源,添加 https://github.com/rabbitmq/erlang-debian/releases 的 APT 源再装,否则大概率装到 23.x
  • 装完验证:erl -version 和 which erl,确保路径在 $PATH 里(必要时补 export PATH=$PATH:/usr/lib64/erlang/bin 到 /etc/profile)

安装 RabbitMQ 并处理 socat/GPG 依赖

socat 缺失或 GPG 密钥未导入会导致 rpm 安装中断,Ubuntu 的 apt 方式虽自动处理依赖,但版本可能滞后;rpm 安装更可控,但必须手动补依赖。

Browser Setup (No-Root Linux)
Browser Setup (No-Root Linux)

在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...

下载
  • CentOS/RHEL 先装 socat:yum install -y socat
  • 下载对应系统的 rpm 包(如 CentOS 7 选 el7 后缀),不要混用 el8 包
  • 安装命令加 --force --nodeps 仅用于紧急绕过冲突,正常应优先解决依赖;例如:rpm -Uvh rabbitmq-server-4.0.3-1.el7.noarch.rpm --force --nodeps
  • Ubuntu 若用 apt,确保已执行 apt update,且源中 RabbitMQ 版本 ≥ 3.11(旧版 apt 源常只提供 3.9.x)
  • 验证安装:ls /usr/lib/rabbitmq/sbin/rabbitmq-{server,ctl} 必须存在

启动服务前必须做好的三件事

跳过这三步,systemctl start rabbitmq-server 表面成功,实际节点起不来,rabbitmqctl cluster_status 显示空或报连接拒绝。

  • /var/lib/rabbitmq/.erlang.cookie 必须字节级一致、权限为 400、属主为 rabbitmq:rabbitmq;scp 复制后立刻执行:chmod 400 /var/lib/rabbitmq/.erlang.cookie && chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
  • /etc/hosts 中每台机器都必须能反向解析其他节点名,例如节点名是 rabbit@rabbitmq1,则必须有 172.16.9.8 rabbitmq1 这一行,不能只写 IP 或域名别名
  • 首次启动前,先启用管理插件:rabbitmq-plugins enable rabbitmq_management;若报错 Applying plugin configuration... failed,八成是 Erlang 版本不匹配,回退上一步检查

远程访问和 Web 管理界面配置

默认只监听 localhost,guest/guest 用户也仅限本地登录;生产环境必须显式放开,且不能依赖默认用户。

  • 编辑 /etc/rabbitmq/rabbitmq.conf(没有就新建),加这三行:
loopback_users = none
listeners.tcp.default = 5672
management.listener.port = 15672
  • 重启服务:systemctl restart rabbitmq-server
  • 开放端口:firewall-cmd --permanent --add-port=5672/tcp 和 firewall-cmd --permanent --add-port=15672/tcp,然后 firewall-cmd --reload
  • 创建新管理员用户(禁用 guest):rabbitmqctl add_user admin Passw0rd → rabbitmqctl set_user_tags admin administrator → rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

真正容易被忽略的是 .erlang.cookie 的权限和 /etc/hosts 解析一致性——哪怕内容对了、少一个 chown 或 hosts 里漏了一条反向映射,集群握手就会静默失败,日志里几乎不报错。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
rabbitmq和kafka有什么区别
rabbitmq和kafka有什么区别

rabbitmq和kafka的区别:1、语言与平台;2、消息传递模型;3、可靠性;4、性能与吞吐量;5、集群与负载均衡;6、消费模型;7、用途与场景;8、社区与生态系统;9、监控与管理;10、其他特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

544

5

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

2026.01.28

768

20

RabbitMQ使用教程合集
RabbitMQ使用教程合集

RabbitMQ使用教程合集整理 RabbitMQ 基础教程、消息队列开发案例、生产者消费者、交换机与队列实战内容。

2026.05.20

164

15

RabbitMQ集群部署指南
RabbitMQ集群部署指南

RabbitMQ集群部署指南聚合 RabbitMQ 集群部署、高可用架构、镜像队列、故障恢复、监控与运维优化内容。

2026.05.20

117

12

RabbitMQ Docker实战指南
RabbitMQ Docker实战指南

RabbitMQ Docker实战指南提供 RabbitMQ Docker 镜像部署、Docker Compose、Kubernetes Operator 与云原生实践教程。

2026.05.20

122

10

什么是中间件
什么是中间件

中间件是一种软件组件,充当不兼容组件之间的桥梁,提供额外服务,例如集成异构系统、提供常用服务、提高应用程序性能,以及简化应用程序开发。想了解更多中间件的相关内容,可以阅读本专题下面的文章。

2024.05.11

589

5

Golang 中间件开发与微服务架构
Golang 中间件开发与微服务架构

本专题系统讲解 Golang 在微服务架构中的中间件开发,包括日志处理、限流与熔断、认证与授权、服务监控、API 网关设计等常见中间件功能的实现。通过实战项目,帮助开发者理解如何使用 Go 编写高效、可扩展的中间件组件,并在微服务环境中进行灵活部署与管理。

2025.12.18

604

18

ThinkPHP中间件机制与请求拦截处理实践
ThinkPHP中间件机制与请求拦截处理实践

本专题围绕 ThinkPHP 中间件体系展开,深入讲解中间件的定义、注册与执行流程。内容包括全局中间件与路由中间件的区别、请求前后处理逻辑、自定义中间件开发以及权限验证与日志处理应用。通过实际案例,帮助开发者掌握中间件在项目中的核心作用与最佳实践。

2026.03.31

418

17

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3770

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习