温馨提示×

rabbitmq网络配置在centos上需要注意什么

小樊
45
2025-12-25 08:18:17
栏目: 智能运维

CentOS 上 RabbitMQ 网络配置要点

一 端口与防火墙

  • 常用端口及用途如下(按实际启用协议开放):
    • 4369/TCP:Erlang Port Mapper Daemon(epmd),节点发现用
    • 5671-5672/TCP:AMQP 0-9-1,建议生产启用 5671/TLS
    • 15672/TCP:HTTP 管理插件
    • 25672/TCP:集群节点间通信(RabbitMQ 3.8+ 常用)
    • 可选:61613-61614/TCP(STOMP)、1883/8883/TCP(MQTT/TLS)
  • firewalld 放行示例(持久化并重载):
    • firewall-cmd --zone=public --permanent --add-port={4369,25672,5671-5672,15672}/tcp
    • 如使用 STOMP/MQTT:firewall-cmd --zone=public --permanent --add-port={61613-61614,1883,8883}/tcp
    • firewall-cmd --reload
  • SELinux 场景可临时放宽网络限制(如仍受限):setsebool -P nis_enabled 1
  • 云服务器需同时在安全组放行上述端口。

二 主机名解析与节点命名

  • RabbitMQ 节点名形如 rabbit@hostname,节点间通信依赖可解析的主机名。建议在所有节点配置 /etc/hosts 或使用内网 DNS,确保短主机名可互相解析。
  • 示例:
    • 192.168.10.236 node236
    • 192.168.10.237 node237
    • 192.168.10.238 node238
  • 修改主机名(示例):hostnamectl set-hostname node236 --static
  • 集群前先验证:ping node236、ping node237 等,确保解析可达。

三 远程访问与认证

  • 默认账号 guest/guest 仅允许从 localhost 登录,远程访问需创建新用户并赋权:
    • rabbitmqctl add_user admin StrongPass!
    • rabbitmqctl set_permissions -p / admin “." ".” “.*”
    • rabbitmqctl set_user_tags admin administrator
  • 启用管理插件后,通过 http://服务器IP:15672 访问控制台。

四 集群网络关键点

  • 集群依赖 Erlang 分布式通信,要求各节点 .erlang.cookie 内容一致(路径:/var/lib/rabbitmq/.erlang.cookie),权限与属主保持默认安全设置。
  • 典型步骤(简要):
    • 各节点停止应用:rabbitmqctl stop_app
    • 重置(必要时):rabbitmqctl reset
    • 加入集群:rabbitmqctl join_cluster rabbit@目标节点名(如 rabbit@node236)
    • 启动应用:rabbitmqctl start_app
    • 查看状态:rabbitmqctl cluster_status
  • 确保节点间 436925672 端口互通,且主机名解析正确。

五 容器与虚拟化环境的额外注意

  • Docker 部署时,映射管理端口 15672 与 AMQP 端口 5672,并确保宿主机防火墙放行;若从容器访问宿主机服务,注意使用宿主机真实 IP,不要使用 127.0.0.1
  • 某些基础镜像可能未启用管理插件,需进入容器执行:rabbitmq-plugins enable rabbitmq_management
  • 在虚拟机或 NAT 网络中,确认 网卡转发/IP 转发已开启(如 sysctl -w net.ipv4.ip_forward=1),否则外部无法访问映射端口。

0