CentOS7 安装rabbitmq
参考:原文链接:https://blog.csdn.net/JingleYe/article/details/141959978
第一步、安装任何软件包之前,建议使用以下命令更新软件包和存储库
yum -y update
第二步、Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库
yum -y install epel-release yum -y update
第三步,安装erlang
可以查看下RabbitMQ和Erlang/OTP兼容的对应表:点这里
我们打算安装rabbitmq 3.6.16版本,对应的Erlang 是20.3.x,这里我们下载20.3.8版本
# Have you installed this repository? If not, run this installation script command: curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash sudo yum install erlang-20.3.8.26-1.el7.x86_64
# 输入如下指令可以判断是否成功安装erlang
erl -version
第四步,安装rabbitmq
下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_16/rabbitmq-server-3.6.16-1.el7.noarch.rpm
安装
rpm -ivh rabbitmq-server-3.6.16-1.el7.noarch.rpm # 或者 rpm -Uvh rabbitmq-server-3.6.16-1.el7.noarch.rpm -U表升级
如果报错
这个错误信息表明在尝试安装RabbitMQ服务器时遇到了两个问题:
-
签名警告:这个警告表示RabbitMQ软件包的签名无法验证。这可能是由于缺少公钥来验证软件包的签名。
-
依赖错误:这个错误表示RabbitMQ安装需要socat这个软件包,但是你的系统上没有安装socat。
要解决这个问题,请按照以下步骤操作:
导入RabbitMQ的公钥:你可以使用以下命令来导入RabbitMQ的公钥:
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
这将允许你的系统验证RabbitMQ软件包的签名。
安装socat:你可以使用以下命令来安装socat
sudo yum install socat
安装完成以后,重新执行安装命令即可。
第五步、安装管理界面的插件(没有这个插件无法启动管理界面)
# 开启管理界面
rabbitmq-plugins enable rabbitmq_management
第六步、开放5672和15672端口(这一步不需要,可以通过ECS开安全组)
firewall-cmd --zone=public --add-port=5672/tcp --permanent && firewall-cmd --reload firewall-cmd --zone=public --add-port=15672/tcp --permanent && firewall-cmd --reload
如果放火墙没有启动 FirewallD is not running,记得启动防火墙
# 查看状态 sudo systemctl status firewalld # 启动防火墙 sudo systemctl start firewalld # 开机自启动防火墙 sudo systemctl enable firewalld
第七步、启动RabbitMQ服务
systemctl start rabbitmq-server #启动服务 systemctl status rabbitmq-server #查看服务状态 systemctl stop rabbitmq-server #停止服务 systemctl enable rabbitmq-server #开启启动服务
第十步、默认的账号密码仅限于本机 localhost 进行访问,所以需要添加一个远程登录的用户
# 创建账号和密码 rabbitmqctl add_user 用户名 密码 # 设置用户角色:administrator rabbitmqctl set_user_tags 用户名 角色 # 为用户添加资源权限,添加配置、写、读权限 rabbitmqctl set_permissions -p "/" 用户名 ".*" ".*" ".*" #修改用户密码 rabbitmqctl change_password 用户名 新密码
来看下示例:
# 假设您要创建一个名为 user1 的用户,密码为 password123 rabbitmqctl add_user user1 password123 # 假设您希望将 user1 设置为 administrator 角色 rabbitmqctl set_user_tags user1 administrator # 在 RabbitMQ 中,您可以为用户指定对特定虚拟主机(vhost)的权限。默认情况下,RabbitMQ 使用名为 / 的虚拟主机。 # 以下命令为 user1 在 / 虚拟主机上添加配置(configure)、写(write)和读(read)权限,允许该用户对该虚拟主机下的所有资源具有完全访问权限: rabbitmqctl set_permissions -p "/" user1 ".*" ".*" ".*" # 这里的 ".*" 是一个正则表达式,表示匹配所有队列、交换机和绑定。 # 如果您需要修改 user1 的密码为 newpassword123,您可以使用以下命令 rabbitmqctl change_password user1 newpassword123
ps: 如果远程登录不上,看看端口是否真的被打开了,云服务器可能要上工作台去开放。