温馨提示×

RabbitMQ在CentOS上的网络配置

小樊
47
2025-09-17 19:10:11
栏目: 智能运维

RabbitMQ在CentOS上的网络配置指南

1. 基础网络配置

1.1 配置静态IP(可选但推荐)

为确保RabbitMQ网络环境稳定,建议配置静态IP。操作路径:cd /etc/sysconfig/network-scripts,备份原配置文件(如cp ifcfg-ens33 myback),用vim编辑配置文件,修改以下参数:BOOTPROTO=static(改为静态)、IPADDR=你的IP地址GATEWAY=网关地址DNS1=DNS服务器地址,保存后重启网络服务:systemctl restart network

1.2 配置防火墙

RabbitMQ依赖多个端口实现不同功能,需确保防火墙开放这些端口:

  • 默认端口:5672(AMQP客户端通信)、15672(Web管理界面);
  • 集群/扩展端口:25672(集群节点间通信)、4369(Erlang Cookie传输)、61613-61614(STOMP协议)、1883-8883(MQTT协议,可选)。 使用firewall-cmd命令开放端口(以5672、15672为例):
firewall-cmd --zone=public --permanent --add-port=5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --reload

若使用iptables,需添加对应规则并保存。

1.3 启用管理插件

为方便通过Web界面管理RabbitMQ,需启用rabbitmq_management插件:

rabbitmq-plugins enable rabbitmq_management

启用后,可通过http://服务器IP:15672访问管理界面,默认用户名/密码为guest/guest(生产环境建议修改)。

2. 配置文件设置

RabbitMQ的网络配置主要通过配置文件实现,CentOS下默认路径为/etc/rabbitmq/rabbitmq.conf(若文件不存在,可手动创建)。以下是常见网络参数配置:

2.1 监听端口与接口

  • 默认TCP端口:设置客户端连接的AMQP端口(默认5672):
    listeners.tcp.default = 5672
    
  • 绑定IP地址:若需允许远程访问,将management.tcp.ip设置为0.0.0.0(监听所有接口);若仅本地访问,可设为127.0.0.1
    management.tcp.ip = 0.0.0.0
    

2.2 远程访问控制

默认情况下,RabbitMQ的loopback_users参数限制仅本地用户可远程访问。若需允许远程用户,需将其设置为空列表:

loopback_users = []

修改后需重启RabbitMQ服务使配置生效:systemctl restart rabbitmq-server

3. 高级网络配置(可选)

3.1 SSL/TLS加密

为保障通信安全,可配置SSL/TLS加密。需生成证书(如使用openssl),并在rabbitmq.conf中添加SSL参数:

listeners.ssl.default = 5671
ssl_options.cacertfile = /path/to/cacert.pem
ssl_options.certfile = /path/to/cert.pem
ssl_options.keyfile = /path/to/key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = false

重启服务后,客户端需使用amqps://协议连接。

3.2 集群网络配置

若搭建RabbitMQ集群,需确保节点间网络可达(通过/etc/hosts文件绑定IP与主机名,避免DNS解析问题),并同步所有节点的.erlang.cookie文件(集群认证凭证):

# 在从节点执行(同步主节点cookie)
scp root@主节点IP:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/
chmod 400 /var/lib/rabbitmq/.erlang.cookie

然后启动集群节点并加入集群:

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@主节点主机名
rabbitmqctl start_app

使用rabbitmqctl cluster_status命令验证集群状态。

4. 验证网络配置

  • 检查端口监听:使用netstatss命令查看RabbitMQ是否监听配置的端口:
    sudo netstat -tuln | grep 5672
    # 或
    ss -tuln | grep 5672
    
    正常输出应包含0.0.0.0:5672(监听所有接口)或指定IP的端口信息。
  • 测试远程连接:使用RabbitMQ客户端工具(如rabbitmqadmin或自定义代码),从远程机器连接服务器,验证是否能正常收发消息。

0