- 首页 >
- 问答 >
-
智能运维 >
- rabbitmq网络配置在centos上需要注意什么
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
- 确保节点间 4369 与 25672 端口互通,且主机名解析正确。
五 容器与虚拟化环境的额外注意
- Docker 部署时,映射管理端口 15672 与 AMQP 端口 5672,并确保宿主机防火墙放行;若从容器访问宿主机服务,注意使用宿主机真实 IP,不要使用 127.0.0.1。
- 某些基础镜像可能未启用管理插件,需进入容器执行:rabbitmq-plugins enable rabbitmq_management
- 在虚拟机或 NAT 网络中,确认 网卡转发/IP 转发已开启(如 sysctl -w net.ipv4.ip_forward=1),否则外部无法访问映射端口。