RabbitMQ消息队列CentOS部署指南
导读:一 环境准备与版本选择 适用系统:CentOS 7/8(示例使用 x86_64),建议内核与基础工具保持更新。 版本匹配:安装前务必确认 Erlang 与 RabbitMQ 的版本兼容矩阵,避免不兼容导致启动失败或异常。 基础依赖:安装...
一 环境准备与版本选择
- 适用系统:CentOS 7/8(示例使用 x86_64),建议内核与基础工具保持更新。
- 版本匹配:安装前务必确认 Erlang 与 RabbitMQ 的版本兼容矩阵,避免不兼容导致启动失败或异常。
- 基础依赖:安装 Erlang 时建议先安装 socat(部分 RPM 构建依赖),可减少安装报错。
- 主机名与解析:确保 /etc/hosts 正确解析本机 FQDN/短主机名,否则节点间通信与 CLI 可能失败。
- 安全策略:如启用 firewalld/SELinux,需提前规划端口放行与策略调整,避免访问与管理受阻。
二 安装步骤
- 方式一 推荐仓库安装(便于后续升级)
- 安装 Erlang 仓库与包
- 安装脚本方式(自动导入 GPG 与仓库):
- curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
- curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
- 或手动创建 repo 文件(示例为 EL7,其他版本请替换 $releasever):
- tee /etc/yum.repos.d/erlang.repo < < EOF [erlang-repo] name=Erlang Repository baseurl=https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/ repo_gpgcheck=1 gpgcheck=1 enabled=1 gpgkey=https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/erlang.gpg EOF
- tee /etc/yum.repos.d/rabbitmq.repo < < EOF [rabbitmq-server] name=RabbitMQ Repository baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch repo_gpgcheck=1 gpgcheck=1 enabled=1 gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey EOF
- 安装脚本方式(自动导入 GPG 与仓库):
- 安装与启动
- sudo yum install -y erlang rabbitmq-server
- sudo systemctl start rabbitmq-server & & sudo systemctl enable rabbitmq-server
- 安装 Erlang 仓库与包
- 方式二 RPM 离线安装(无外网或内网环境)
- 下载匹配版本的 Erlang 与 RabbitMQ RPM 包(注意版本兼容),先安装依赖:sudo yum install -y socat
- 安装:rpm -ivh erlang-.rpm rabbitmq-server-.noarch.rpm
- 启动:sudo systemctl start rabbitmq-server & & sudo systemctl enable rabbitmq-server
- 验证安装
- 服务状态:sudo systemctl status rabbitmq-server
- 节点状态:rabbitmqctl status
三 基础配置与访问控制
- 启用管理插件与访问
- 启用插件:sudo rabbitmq-plugins enable rabbitmq_management
- 访问地址:http://< 服务器IP> :15672,默认账号 guest/guest(仅限本机访问)。
- 创建管理员与虚拟主机
- 新建用户:sudo rabbitmqctl add_user admin StrongPass!
- 设置角色:sudo rabbitmqctl set_user_tags admin administrator
- 新建 vhost:sudo rabbitmqctl add_vhost /prod
- 赋权:sudo rabbitmqctl set_permissions -p /prod admin “." ".” “.*”
- 配置文件与目录
- 主配置:/etc/rabbitmq/rabbitmq.conf
- 环境配置:/etc/rabbitmq/rabbitmq-env.conf
- 数据目录:/var/lib/rabbitmq/(含 .erlang.cookie 等敏感文件,注意权限)
四 防火墙与 SELinux 设置
- firewalld 放行端口
- AMQP:5672/TCP,管理界面:15672/TCP
- 命令:
- sudo firewall-cmd --permanent --zone=public --add-port=5672/tcp
- sudo firewall-cmd --permanent --zone=public --add-port=15672/tcp
- sudo firewall-cmd --reload
- SELinux
- 如遇插件或管理访问受限,可临时或策略性调整(示例为允许 httpd 网络连通性,按需使用):
- sudo setsebool -P httpd_can_network_connect 1
- 生产环境建议基于最小权限原则进行策略配置,而非全局放行。
- 如遇插件或管理访问受限,可临时或策略性调整(示例为允许 httpd 网络连通性,按需使用):
五 快速验证与常见问题
- 快速验证
- 管理界面:浏览器访问 http://:15672,使用新建的 admin 登录,确认节点、连接、队列视图正常。
- CLI 验证:rabbitmqctl status 查看节点与运行时信息。
- 命令行工具:使用 rabbitmqadmin 进行队列/交换机/绑定声明与收发测试(需先启用管理插件)。
- 常见问题与排查
- 节点不可达或 CLI 认证失败:检查 /etc/hosts 主机名解析、FQDN 一致性、以及 .erlang.cookie 是否一致(集群场景尤为重要)。
- 管理界面无法远程访问:确认 15672 已放行、插件已启用、以及应用监听地址配置正确。
- 安装依赖失败:安装 socat 后重试 Erlang/RabbitMQ 安装。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: RabbitMQ消息队列CentOS部署指南
本文地址: https://pptw.com/jishu/756896.html
