CentOS 7安装部署RabbitMQ

一、版本适配说明

  • Erlang 版本:23.3.4.11(与 RabbitMQ 3.8.30 完全兼容)
  • RabbitMQ 版本:3.8.30

二、安装步骤

1,更换国内 YUM 源

复制代码
# 备份默认源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak
 
# 下载阿里云源(关键步骤,解决CentOS 7默认源失效问题)
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
 
# 清理缓存并生成新缓存
yum clean all
yum makecache fast

2. 安装系统基础依赖

先安装后续步骤必需的工具和依赖库,避免安装时缺包报错:

复制代码
# 更新系统软件包缓存(可选,加速后续安装)
sudo yum update -y

# 安装依赖:socat(RabbitMQ 必需)、wget(下载文件)、logrotate(日志轮转)
sudo yum install -y socat wget logrotate

验证:无报错即成功(若提示 "已安装" 也正常)。

3. 彻底卸载旧版本 Erlang

若之前装过旧 Erlang,必须先卸载干净:

复制代码
# 1. 查看所有已安装的 Erlang 相关包
rpm -qa | grep erlang

# 2. 批量卸载所有 Erlang 包(无需手动改包名,命令自动匹配)
sudo rpm -e --nodeps $(rpm -qa | grep erlang)

# 3. 强制删除残留文件(防止卸载不彻底)
sudo rm -rf /usr/lib64/erlang /usr/share/erlang

验证 :再次执行 rpm -qa | grep erlang,无任何输出即卸载干净。

4. 下载并安装 Erlang

这里注意避开网络问题,实在不行,梯子或手动下载啥的。

复制代码
# 1. 下载 Erlang 23.3.4.11
wget https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm/download.rpm -O erlang-23.3.4.11-1.el7.x86_64.rpm

# 2. 安装下载好的 Erlang RPM 包
sudo rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm

验证 :执行 erl -version,输出类似以下内容即成功:

复制代码
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.2.2.10

5. 下载并安装 RabbitMQ 3.8.30

复制代码
# 1. 下载 RabbitMQ 3.8.30(若已下载,跳过此步)
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.30/rabbitmq-server-3.8.30-1.el7.noarch.rpm

# 2. 导入 RabbitMQ 签名密钥(若之前导入失败,可加 --no-check-certificate 跳过证书验证)
sudo rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc --no-check-certificate

# 3. 安装 RabbitMQ
sudo rpm -Uvh rabbitmq-server-3.8.30-1.el7.noarch.rpm

验证 :执行 rpm -qa | grep rabbitmq,输出 rabbitmq-server-3.8.30-1.el7.noarch 即成功。

6. 启动 RabbitMQ 并设置开机自启

复制代码
# 1. 启动 RabbitMQ 服务
sudo systemctl start rabbitmq-server

# 2. 设置开机自启(重启服务器后自动运行)
sudo systemctl enable rabbitmq-server

验证 :执行 sudo systemctl status rabbitmq-server,看到 Active: active (running) 即成功。

7. 启用 Web 管理界面(可视化操作)

复制代码
# 启用 rabbitmq_management 插件(会自动依赖其他必需插件)
sudo rabbitmq-plugins enable rabbitmq_management

验证 :执行 sudo rabbitmq-plugins list | grep management,输出以下 3 行即成功:

复制代码
[E*] rabbitmq_management               3.8.30
[E*] rabbitmq_management_agent           3.8.30
[E*] rabbitmq_web_dispatch               3.8.30

8. 创建管理员用户(默认 guest 仅本地访问,需自定义用户)

复制代码
# 1. 创建用户(替换 admin 为用户名,123456 为密码,建议生产环境改复杂密码)
sudo rabbitmqctl add_user admin 123456

# 2. 给用户设置 "超级管理员" 权限(可管理所有资源)
sudo rabbitmqctl set_user_tags admin administrator

# 3. 授予用户对根虚拟主机(/)的所有权限(读、写、管理)
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

验证 :执行 sudo rabbitmqctl list_users,看到 admin 用户的 tags[administrator] 即成功。

9. 配置防火墙(开放访问端口)

若服务器启用了防火墙,需开放 RabbitMQ 的 2 个核心端口:

复制代码
# 1. 开放 AMQP 通信端口(5672,程序调用 RabbitMQ 用)
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent

# 2. 开放 Web 管理端口(15672,浏览器访问控制台用)
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent

# 3. 重启防火墙,使配置生效
sudo firewall-cmd --reload

验证 :执行 sudo firewall-cmd --list-ports,输出包含 5672/tcp 15672/tcp 即成功。

三、最终验证

1. 访问 Web 控制台

打开浏览器,输入地址:http://你的服务器IP:15672

  • 输入用户名 admin、密码 123456(你之前设置的)
  • 登录后能看到 RabbitMQ 管理界面,顶部显示 RabbitMQ 3.8.30Node: ... (running) 即正常。

2. 命令行测试消息收发(可选,验证通信正常)

复制代码
# 1. 安装消息测试工具(amqp-tools)
sudo yum install -y amqp-tools

# 2. 发送一条测试消息到 "test_queue" 队列
echo "Hello RabbitMQ" | amqp-publish -u amqp://admin:123456@localhost -e amq.default -r test_queue

# 3. 从 "test_queue" 队列接收消息(接收1条后退出)
amqp-consume -u amqp://admin:123456@localhost -q test_queue -c 1 cat

验证 :接收命令输出 Hello RabbitMQ 即消息收发正常。

四、常用命令(后续管理用)

操作目的 命令
重启 RabbitMQ sudo systemctl restart rabbitmq-server
停止 RabbitMQ sudo systemctl stop rabbitmq-server
查看 RabbitMQ 日志 sudo tail -f /var/log/rabbitmq/rabbit@localhost.log
查看所有队列 sudo rabbitmqctl list_queues
修改用户密码 sudo rabbitmqctl change_password admin 新密码
删除匿名用户(安全) sudo rabbitmqctl delete_user guest
相关推荐
aitav02 小时前
⚡ WSL2 搭建 s5p6818 Linux 嵌入式开发平台 (part 3):Wifi驱动移植、ssh移植、e2fsprogs移植
linux·wifi·ssh·嵌入式·e2fsprogs
南枝异客5 小时前
CentOS 7 网络连接问题
linux·运维·centos
牛奶咖啡135 小时前
实现Linux的ssh免密登录实操保姆级教程
linux·ssh·生成ssh密钥对的三种方法·添加公钥到需ssh免登录服务器·测试ssh免登录的服务器·生产环境linux的优化策略
Terio_my5 小时前
RabbitMQ 安装与配置
分布式·rabbitmq
zhangrelay7 小时前
操作系统全解析:Windows、macOS与Linux的深度对比与选择指南(AI)
linux·笔记·学习
程序员小凯7 小时前
RabbitMq入门之概括
分布式·消息队列·rabbitmq
阿方索8 小时前
Linux 正则表达式
linux·运维
金色熊族8 小时前
ubuntu20.04编译qt源码5.15.3
linux·c++·qt
!chen9 小时前
RabbitMQ的安装集群、镜像队列配置
分布式·rabbitmq·ruby