温馨提示×

RabbitMQ在Debian上的部署流程

小樊
50
2025-10-02 14:00:22
栏目: 智能运维

一、前置准备

  • 确保Debian系统已更新至最新版本:sudo apt update && sudo apt upgrade -y
  • 安装必要工具:sudo apt install -y curl wget gnupg2

二、安装Erlang(RabbitMQ依赖环境) RabbitMQ基于Erlang语言开发,需先安装兼容的Erlang环境。

  • 导入Erlang官方GPG密钥:
    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
  • 添加Erlang官方仓库:
    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
  • 安装Erlang:
    sudo apt update && sudo apt install -y erlang
  • 验证安装:erl -version(显示Erlang版本信息即成功)。

三、安装RabbitMQ Server

  • 添加RabbitMQ官方仓库:
    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
  • 安装RabbitMQ Server:
    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)”即成功)。

四、基础配置(单节点)

  1. 启用Web管理插件(推荐):
    sudo rabbitmq-plugins enable rabbitmq_management
    插件启用后需重启服务生效:sudo systemctl restart rabbitmq-server
  2. 访问管理界面
    默认通过http://<服务器IP>:15672访问,初始用户为guest/guest(仅限本地登录)。
  3. 创建管理员用户(替换adminyour_password为实际值):
    sudo rabbitmqctl add_user admin your_password
    sudo rabbitmqctl set_user_tags admin administrator  # 设置为管理员角色
    sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"  # 授权所有权限
    
  4. 创建虚拟主机(可选,用于隔离环境):
    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
  • 配置防火墙:允许AMQP(5672)和管理界面(15672)端口:
    sudo ufw allow 5672/tcp && sudo ufw allow 15672/tcp
  • 禁用默认虚拟主机(可选):
    sudo rabbitmqctl delete_vhost /(删除默认虚拟主机,强制使用自定义虚拟主机)。

六、集群部署(可选,高可用) 若需搭建集群(以2节点为例),需完成以下步骤:

  1. 确保所有节点Erlang Cookie一致
    • 在主节点(如node1)查看Cookie:cat /var/lib/rabbitmq/.erlang.cookie
    • 复制到其他节点(如node2):sudo scp /var/lib/rabbitmq/.erlang.cookie user@node2:/var/lib/rabbitmq/
    • 设置Cookie权限:sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie(所有节点均需执行)
  2. 启动集群
    • 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
      
  3. 验证集群状态
    在任意节点执行:sudo rabbitmqctl cluster_status(显示所有节点已加入集群)。

七、验证功能

  • 命令行测试
    • 发送消息(生产者):
      echo "Hello RabbitMQ!" | sudo rabbitmqadmin publish routing_key=test_queue exchange=
      
    • 接收消息(消费者):
      sudo rabbitmqadmin get queue=test_queue
      
  • 管理界面测试
    登录Web界面,查看队列、交换机、连接等状态,确认消息收发正常。

0