Linux系统中RabbitMQ怎样配置
小樊
32
2025-12-30 09:26:04
Linux系统中RabbitMQ配置指南
一 安装与准备
- 安装依赖与RabbitMQ(以常见发行版为例):
- Ubuntu/Debian:
- 安装Erlang:sudo apt-get update && sudo apt-get install -y erlang
- 安装RabbitMQ(示例版本):sudo apt-get install -y rabbitmq-server=3.10.1-1_all
- CentOS/RHEL 7:
- 安装Erlang与依赖:sudo yum install -y erlang socat
- 安装RabbitMQ RPM:sudo rpm -ivh rabbitmq-server-3.10.0-1.el7.noarch.rpm
- RHEL 8+/Fedora(使用官方仓库更方便):
- 导入签名并启用仓库后安装:sudo dnf install -y rabbitmq-server
- 启动与开机自启:
- 使用systemd:sudo systemctl enable --now rabbitmq-server
- 使用SysVinit:sudo chkconfig rabbitmq-server on && sudo service rabbitmq-server start
- 版本匹配提示:部署前请确认Erlang与RabbitMQ版本兼容矩阵,避免启动失败或异常。
二 核心配置文件与常用参数
- 配置文件路径与格式:
- 主配置文件:/etc/rabbitmq/rabbitmq.conf(若不存在可手动创建)
- 高级配置(可选):/etc/rabbitmq/advanced.config(Erlang术语配置)
- 常用配置示例(在rabbitmq.conf中):
- 修改AMQP端口:listeners.tcp.default = 5672
- 修改管理端口:management.tcp.port = 29991
- 绑定监听地址:management.tcp.ip = 0.0.0.0
- 使配置生效:
- 重启服务:sudo systemctl restart rabbitmq-server
- 验证监听端口:ss -tulnp | grep beam
- 说明:不同版本的配置项名称可能略有差异,建议以对应版本的官方文档为准。
三 用户与权限管理
- 启用管理插件(提供Web管理界面):sudo rabbitmq-plugins enable rabbitmq_management
- 创建管理员用户并设置权限:
- 添加用户:rabbitmqctl add_user admin StrongPass!
- 设置角色:rabbitmqctl set_user_tags admin administrator
- 设置默认vhost权限:rabbitmqctl set_permissions -p / admin “." ".” “.*”
- 常用运维命令:
- 修改密码:rabbitmqctl change_password admin NewPass!
- 查看用户:rabbitmqctl list_users
- 查看权限:rabbitmqctl list_permissions -p /
- 安全建议:生产环境禁用或删除默认guest用户,仅使用自建管理员与最小权限账户。
四 端口与防火墙
- 常用端口与作用:
- 5672/tcp:AMQP 0-9-1 客户端通信
- 15672/tcp:HTTP 管理插件
- 防火墙放行示例:
- firewalld(CentOS/RHEL/Fedora):
- 放行端口:sudo firewall-cmd --permanent --add-port={5672,15672}/tcp
- 重载规则:sudo firewall-cmd --reload
- ufw(Ubuntu/Debian):
- 放行端口:sudo ufw allow 5672/tcp && sudo ufw allow 15672/tcp
- 如修改了管理端口(如改为29991),需同步放行新端口并据此访问管理界面。
五 集群与高可用配置
- 前置条件:
- 所有节点时间同步(如chrony)
- 各节点安装相同版本的Erlang与RabbitMQ
- 统一Erlang Cookie(节点间认证)
- 部署步骤(简要):
- 拷贝Cookie(示例从node1到node2/node3):
- scp /var/lib/rabbitmq/.erlang.cookie node2:/var/lib/rabbitmq/.erlang.cookie
- 权限应为400,属主rabbitmq:rabbitmq
- 启动各节点服务:sudo systemctl start rabbitmq-server
- 在从节点加入集群(示例将node2加入node1):
- rabbitmqctl stop_app
- rabbitmqctl reset
- rabbitmqctl join_cluster rabbit@node1
- rabbitmqctl start_app
- 验证集群状态:rabbitmqctl cluster_status
- 高可用策略(镜像队列示例):
- 对所有队列启用镜像:rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:“all”,“ha-sync-mode”:“automatic”}’
- 访问与管理:集群中各节点均可访问管理界面(需放行对应端口),建议使用负载均衡对外暴露AMQP与管理端口。