温馨提示×

RabbitMQ Debian部署步骤是什么

小樊
46
2026-01-09 17:54:45
栏目: 智能运维

Debian 上部署 RabbitMQ 的标准步骤

一 准备与版本选择

  • 确认系统版本:当前主流为 Debian 11 BullseyeDebian 12 Bookworm(以及处于测试阶段的 Debian 13 Trixie)。选择仍在维护的版本可获得更好的兼容性与安全更新。
  • 版本匹配要点:RabbitMQ 与 Erlang/OTP 需版本匹配,例如 RabbitMQ 4.0.0+ 支持 Erlang 27.xRabbitMQ 3.12.x 支持 Erlang 26.x。不建议使用系统自带旧版 Erlang,建议通过官方仓库安装兼容版本。
  • 架构说明:常见为 amd64ARM64(aarch64) 在部分仓库支持有限,若官方 APT 源缺位,可考虑 Launchpad PPA 或手动安装方案。

二 安装步骤(APT 官方仓库,推荐)

  • 安装基础工具与导入密钥
    • 安装工具:sudo apt-get update && sudo apt-get install -y curl gnupg apt-transport-https
    • 导入 RabbitMQ 团队 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
  • 配置 APT 源(Debian 12 Bookworm 示例,其他版本替换为对应代号)
    • 新建源文件:sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
      • ## Modern Erlang/OTP releases
        deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-erlang/debian bookworm main
        deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-erlang/debian bookworm main
      • ## Latest RabbitMQ releases
        deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/debian bookworm main
        deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/debian bookworm main
      • EOF
  • 安装与启动
    • 更新索引:sudo apt-get update
    • 安装 Erlang(推荐按需组件而非 erlang/erlang-nox 元包,便于精确版本控制):
      sudo apt-get install -y erlang-base erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssl erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl
    • 安装 RabbitMQ:sudo apt-get install -y rabbitmq-server --fix-missing
    • 开机自启:sudo systemctl enable --now rabbitmq-server
    • 状态检查:sudo systemctl status rabbitmq-server(应看到 Active: active (running)

三 安全与常用配置

  • 启用管理插件与访问控制台
    • 启用插件:sudo rabbitmq-plugins enable rabbitmq_management
    • 访问地址:http://服务器IP:15672;默认账户 guest/guest 仅限本机访问,生产环境应创建管理员并禁用或删除默认账户。
  • 创建管理员用户与授权
    • 新建用户:sudo rabbitmqctl add_user admin <StrongPassword>
    • 设置标签:sudo rabbitmqctl set_user_tags admin administrator
    • 设置权限:sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
  • 防火墙放行
    • 管理端口:sudo ufw allow 15672/tcp
    • AMQP 端口:sudo ufw allow 5672/tcp(如启用 TLS,还需放行 5671/tcp

四 常见问题与排错要点

  • 版本不匹配导致无法启动或功能受限:核对 RabbitMQ 与 Erlang 的兼容矩阵,必要时固定 Erlang 版本。
  • 使用系统自带旧版 Erlang:可能缺少新特性或存在安全漏洞,建议改用官方 APT 仓库的 Erlang/OTP
  • 管理界面无法访问:确认插件已启用、监听在 0.0.0.0、以及云服务器安全组/本机防火墙已放行 15672
  • 架构或仓库不可用:若为 ARM64 且官方 Debian 仓库缺位,可尝试 Launchpad PPA 或改为手动安装 DEB 包(需自行解决依赖与后续升级)。

五 可选 集群与高可用

  • 准备:各节点安装相同版本的 ErlangRabbitMQ,并设置相同的 Erlang Cookie(文件 /var/lib/rabbitmq/.erlang.cookie,权限 400,属主 rabbitmq:rabbitmq)。
  • 加入集群(在待加入节点执行):
    • sudo systemctl stop rabbitmq-server
    • sudo rabbitmqctl stop_app
    • sudo rabbitmqctl reset
    • sudo rabbitmqctl join_cluster rabbit@node1(将 node1 替换为现有主节点名)
    • sudo rabbitmqctl start_app
    • sudo systemctl start rabbitmq-server
  • 镜像队列示例(在任一节点执行):
    • sudo rabbitmqctl set_policy ha-all "^my_queue$" '{"ha-mode":"all","ha-sync-mode":"automatic"}'(将 my_queue 替换为你的队列匹配规则)

0