准备工作
在开始安装之前,请确保您拥有一台具备以下条件的CentOS 6.8服务器:
- 操作系统:纯净或已做基础配置的CentOS 6.8。
- 权限:具备root权限或通过
sudo
提权的能力。 - 网络:服务器能够连接到互联网,以下载必要的软件包。
通过SSH登录到您的服务器,并执行系统更新,确保所有基础软件包都是最新状态(尽管官方源已停止维护,但这是一个良好的操作习惯)。
yum update -y
第一步:安装Erlang环境
RabbitMQ是基于Erlang语言开发的高度并发消息中间件,安装正确版本的Erlang是其运行的首要前提,版本兼容性至关重要,不匹配的Erlang版本会导致RabbitMQ无法启动或运行不稳定。
为了避免手动编译的复杂性,我们采用RabbitMQ团队提供的Erlang解决方案仓库,这个仓库包含了经过测试、与特定RabbitMQ版本兼容的Erlang包。
导入仓库GPG密钥
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc rpm --import https://packagecloud.io/rabbitmq/erlang/gpgkey
添加Erlang仓库
使用
wget
下载并安装Erlang的仓库配置文件,该文件会告诉yum
在哪里寻找兼容的Erlang软件包。wget https://packagecloud.io/rabbitmq/erlang/el/6/x86_64/erlang-21.3.8.21-1.el6.x86_64.rpm yum localinstall erlang-21.3.8.21-1.el6.x86_64.rpm -y
注意:这里直接安装了一个兼容性较好的Erlang 21.x版本的RPM包作为示例,更通用的方法是安装repo文件,但CentOS 6的旧版yum有时对现代https源支持不佳,直接下载RPM包是更可靠的选择。
安装Erlang
添加仓库后,即可通过
yum
命令直接安装Erlang。yum install erlang -y
安装完成后,可以通过命令
erl
进入Erlang shell,输入halt().
退出,以验证Erlang是否安装成功。
第二步:安装RabbitMQ服务器
Erlang环境就绪后,接下来安装RabbitMQ服务器本身,同样,我们从官方渠道下载稳定版的RPM包,对于CentOS 6,RabbitMQ 3.6.x或3.7.x是较为兼容的选择。
下载RabbitMQ Server RPM包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_15/rabbitmq-server-3.6.15-1.el6.noarch.rpm
安装RabbitMQ Server
使用
yum localinstall
命令进行安装,它能自动处理依赖关系。yum localinstall rabbitmq-server-3.6.15-1.el6.noarch.rpm -y
第三步:启动、配置与管理
安装过程不会自动启动服务,需要手动进行操作。
启动RabbitMQ服务
service rabbitmq-server start
设置开机自启
chkconfig rabbitmq-server on
检查服务状态
service rabbitmq-server status
如果看到 “pid
“, “running” 等字样,说明服务已成功启动。
第四步:启用Web管理插件
RabbitMQ提供了一个非常实用的Web管理界面,方便用户可视化管理队列、交换机、用户等。
启用插件
rabbitmq-plugins enable rabbitmq_management
创建管理员用户
默认的
guest
用户只能从本地主机(localhost)访问,为了远程管理,需要创建一个新用户并授予管理员权限。# 创建用户,用户名为 admin,密码为 YourPassword rabbitmqctl add_user admin YourPassword # 将用户设置为管理员角色 rabbitmqctl set_user_tags admin administrator # 授予用户在虚拟主机 "/" 上的所有权限 rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
请将
YourPassword
替换为您自己的强密码。
第五步:配置防火墙
为了能够从外部访问Web管理界面(默认端口15672)和AMQP服务(默认端口5672),需要在iptables
中开放相应端口。
# 开放5672端口 (AMQP) iptables -I INPUT -p tcp --dport 5672 -j ACCEPT # 开放15672端口 (Web管理) iptables -I INPUT -p tcp --dport 15672 -j ACCEPT # 保存防火墙规则,防止重启后失效 service iptables save
配置完成后,您就可以在浏览器中通过 http://<您的服务器IP>:15672
访问RabbitMQ管理界面,并使用刚刚创建的admin
账户登录。
端口 | 用途 |
---|---|
5672 | AMQP协议通信端口 |
15672 | Web管理界面访问端口 |
25672 | Erlang节点间通信端口 |
相关问答FAQs
问题1:我已经按照步骤安装,但无法通过Web界面登录,提示“Login failed”,怎么办?
解答: 这个问题通常有两个原因,第一,您可能仍在使用默认的guest
用户,该用户出于安全考虑,被限制只能从服务器本机(localhost或127.0.0.1)登录,请确保您使用的是通过rabbitmqctl add_user
命令新创建的用户(如上文示例中的admin
),第二,请检查您输入的用户名和密码是否完全正确,注意大小写和空格,如果忘记密码,可以使用rabbitmqctl change_password <用户名> <新密码>
命令进行重置。
问题2:启动RabbitMQ服务时失败,日志中提示与Erlang版本相关的错误,应该如何处理?
解答: 这是RabbitMQ安装中最常见的问题,根源在于Erlang与RabbitMQ的版本不兼容,RabbitMQ对Erlang的版本有严格要求,版本过新或过旧都可能导致服务无法启动,解决方法是确保您安装的Erlang版本在RabbitMQ官方的兼容列表之内,本文推荐的方法(使用RabbitMQ团队提供的Erlang仓库或直接安装其提供的RPM包)正是为了规避此问题,如果自行安装了其他来源的Erlang,请先将其卸载(yum remove erlang*
),然后严格按照本文“第一步”中的指引重新安装兼容的Erlang版本。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复