一、前置准备
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget gnupg2
二、安装Erlang(RabbitMQ依赖环境) RabbitMQ基于Erlang语言开发,需先安装兼容的Erlang环境。
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rabbitmq-erlang.list
sudo apt update && sudo apt install -y erlang
erl -version
(显示Erlang版本信息即成功)。三、安装RabbitMQ Server
echo "deb [signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://dl.bintray.com/rabbitmq/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
sudo apt update && sudo apt install -y rabbitmq-server
sudo systemctl start rabbitmq-server && sudo systemctl enable rabbitmq-server
sudo systemctl status rabbitmq-server
(显示“active (running)”即成功)。四、基础配置(单节点)
sudo rabbitmq-plugins enable rabbitmq_management
sudo systemctl restart rabbitmq-server
http://<服务器IP>:15672
访问,初始用户为guest
/guest
(仅限本地登录)。admin
和your_password
为实际值):sudo rabbitmqctl add_user admin your_password
sudo rabbitmqctl set_user_tags admin administrator # 设置为管理员角色
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" # 授权所有权限
sudo rabbitmqctl add_vhost my_vhost # 创建虚拟主机my_vhost
sudo rabbitmqctl set_permissions -p my_vhost admin ".*" ".*" ".*" # 授权用户admin访问
```。
五、安全加固(生产环境必做)
guest
用户的远程登录,或修改其密码:sudo rabbitmqctl change_password guest new_password
sudo ufw allow 5672/tcp && sudo ufw allow 15672/tcp
sudo rabbitmqctl delete_vhost /
(删除默认虚拟主机,强制使用自定义虚拟主机)。六、集群部署(可选,高可用) 若需搭建集群(以2节点为例),需完成以下步骤:
node1
)查看Cookie:cat /var/lib/rabbitmq/.erlang.cookie
node2
):sudo scp /var/lib/rabbitmq/.erlang.cookie user@node2:/var/lib/rabbitmq/
sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
(所有节点均需执行)node1
上启动服务:sudo systemctl start rabbitmq-server
node2
上停止应用、重置并加入集群:sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@node1 # node1为主节点
sudo rabbitmqctl start_app
sudo rabbitmqctl cluster_status
(显示所有节点已加入集群)。七、验证功能
echo "Hello RabbitMQ!" | sudo rabbitmqadmin publish routing_key=test_queue exchange=
sudo rabbitmqadmin get queue=test_queue