RabbitMQ是基于Erlang语言开发的,因此需要先安装Erlang。可以通过Erlang官方仓库或RabbitMQ兼容的仓库安装:
# 添加Erlang官方仓库
sudo 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
# 安装Erlang
sudo yum install -y erlang
# 验证安装
erl -version # 应输出Erlang版本信息
为了安装最新稳定版的RabbitMQ,建议添加RabbitMQ官方仓库:
# 添加RabbitMQ仓库
sudo 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
通过YUM安装RabbitMQ:
# 安装RabbitMQ
sudo yum install -y rabbitmq-server
# 验证安装
rpm -qa | grep rabbitmq-server # 应输出rabbitmq-server版本信息
# 启动RabbitMQ服务
sudo systemctl start rabbitmq-server
# 设置开机自启
sudo systemctl enable rabbitmq-server
# 检查服务状态
sudo systemctl status rabbitmq-server # 应显示"active (running)"
RabbitMQ默认提供Web管理界面,需通过插件启用:
# 启用管理插件
sudo rabbitmq-plugins enable rabbitmq_management
# 验证插件状态
sudo rabbitmq-plugins list # 应显示"rabbitmq_management"为"[enabled]"
若需远程访问RabbitMQ的管理界面或AMQP端口,需配置防火墙:
# 允许AMQP协议端口(5672,用于客户端通信)
sudo firewall-cmd --permanent --zone=public --add-port=5672/tcp
# 允许管理界面端口(15672,用于Web访问)
sudo firewall-cmd --permanent --zone=public --add-port=15672/tcp
# 重新加载防火墙规则
sudo firewall-cmd --reload
RabbitMQ的主要配置文件位于/etc/rabbitmq/rabbitmq.conf(新版推荐使用INI格式),可通过修改该文件调整配置:
# 编辑配置文件
sudo vi /etc/rabbitmq/rabbitmq.conf
# 示例配置(取消注释并修改):
# 监听所有IP的5672端口(默认仅监听本地)
listeners.tcp.default = 0.0.0.0:5672
# 禁用guest用户远程登录(默认guest用户仅能本地访问)
loopback_users.guest = false
# 设置默认用户(替换为自定义用户名/密码)
default_user = admin
default_pass = admin123
# 设置日志级别(info/debug/warning/error)
log.level = info
# 保存并退出
默认的guest用户安全性较低,建议创建新用户并分配权限:
# 创建用户(用户名:admin,密码:admin123)
sudo rabbitmqctl add_user admin admin123
# 设置用户角色为管理员(administrator可管理虚拟主机、用户等)
sudo rabbitmqctl set_user_tags admin administrator
# 分配权限(允许用户访问默认虚拟主机"/",并拥有所有操作权限)
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
# 验证用户
sudo rabbitmqctl list_users # 应显示admin用户
http://<服务器IP>:15672,使用创建的admin用户登录,查看队列、交换机等状态。rabbitmqadmin工具发送/接收消息(需提前安装,可通过sudo rabbitmqadmin命令查看用法)。sudo rabbitmqctl add_vhost my_vhost # 创建虚拟主机
sudo rabbitmqctl set_permissions -p my_vhost admin ".*" ".*" ".*" # 分配权限
rabbitmq.conf中的queue_index_embed_msgs_below、msg_store_file_size_limit等参数,提升消息可靠性。rabbitmq.conf中的cluster_nodes参数,并通过rabbitmqctl join_cluster命令将节点加入集群。以上步骤涵盖了CentOS环境下RabbitMQ的基础配置,可根据实际需求调整参数(如端口、用户权限、持久化设置等)。生产环境中建议启用TLS加密、限制远程访问IP、定期备份配置文件。