Deprecated: parse_url(): Passing null to parameter #1 ($url) of type string is deprecated in /www/wwwroot/blog_qqvbc_com/usr/plugins/Access/Access_Core.php on line 339

Deprecated: parse_url(): Passing null to parameter #1 ($url) of type string is deprecated in /www/wwwroot/blog_qqvbc_com/usr/plugins/Access/Access_Core.php on line 392

Deprecated: parse_url(): Passing null to parameter #1 ($url) of type string is deprecated in /www/wwwroot/blog_qqvbc_com/usr/plugins/Access/Access_Core.php on line 394
Joyber 的博客

✅ RabbitMQ 开启【Web可视化管理后台】完整步骤(阿里云Linux3/centos8通用,公网远程访问版,一步到位)

你当前的需求是 安装RabbitMQ后,开启网页版的管理后台,并且你的服务器是公网IP服务器,这个操作有 固定4步必做操作,全部执行完就能浏览器访问管理后台,100%成功,无任何坑,命令直接复制执行即可!

✅ 前置说明

RabbitMQ 的 Web管理后台不是默认开启的,它是一个 官方插件,安装RabbitMQ时插件自带,只是默认关闭,我们只需要启用插件+配置允许远程访问+放行端口+重启服务 这4步即可,不需要额外安装任何东西

你的系统是 Alibaba Cloud Linux release 3 (OpenAnolis Edition),和CentOS8完全兼容,所有命令通用!


✅ 完整4步操作(按顺序执行,全部复制运行即可,无需修改)

✔ 第一步:启用 RabbitMQ 管理后台插件(核心命令,必须执行)

rabbitmq-plugins enable rabbitmq_management

✅ 执行成功会提示:The following plugins have been enabled: rabbitmq_management 等一串内容,说明插件开启成功。

✔ 第二步:创建/修改配置文件,允许【公网远程访问】(重中之重!公网必配)

RabbitMQ 默认的安全策略是:只允许本机(127.0.0.1)访问Web后台,公网IP直接访问会提示登录失败/403,这是99%人访问不了的核心原因,必须配置!

# 1. 创建rabbitmq核心配置文件(安装后默认无配置文件,手动创建)
mkdir -p /etc/rabbitmq && touch /etc/rabbitmq/rabbitmq.conf
# 2. 写入核心配置:允许所有IP远程访问 + 基础默认配置
cat > /etc/rabbitmq/rabbitmq.conf << 'EOF'
# 允许所有IP远程登录访问(公网必开,关闭本地回环限制)
loopback_users = none
# RabbitMQ默认通信端口,不用改
listeners.tcp.default = 5672
# 日志级别
log.level = info
EOF
# 3. 给配置文件赋正确权限,避免启动报错
chown -R rabbitmq:rabbitmq /etc/rabbitmq/
chmod -R 755 /etc/rabbitmq/

✔ 第三步:放行 Web后台+通信 端口(公网服务器必做,防火墙+阿里云安全组)

RabbitMQ 有2个核心端口必须放行,少一个都访问不了,两个端口缺一不可

✅ ① 服务器防火墙放行端口(直接复制命令执行)

# 放行 Web管理后台端口 15672 (网页访问用)
firewall-cmd --add-port=15672/tcp --permanent
# 放行 RabbitMQ消息通信端口 5672 (程序连接用)
firewall-cmd --add-port=5672/tcp --permanent
# 重载防火墙,配置生效
firewall-cmd --reload

✅ ② 阿里云控制台【安全组放行端口】(最容易漏掉的一步!)

登录你的阿里云服务器控制台 → 找到你的实例 → 点击【安全组】→ 【配置规则】→ 【入站规则】→ 【添加规则】

  • 新增规则1:端口范围填 15672/15672,协议 TCP,来源 0.0.0.0/0
  • 新增规则2:端口范围填 5672/5672,协议 TCP,来源 0.0.0.0/0
    保存即可。

    ❗ 重要:只放行服务器防火墙没用,阿里云安全组必须放行,否则公网浏览器根本连不上端口!

✔ 第四步:重启RabbitMQ服务,让所有配置生效(必须重启)

# 重启服务
systemctl restart rabbitmq-server
# 可选:设置开机自启,以后服务器重启自动启动RabbitMQ
systemctl enable rabbitmq-server
# 查看服务运行状态(确认是否正常启动,显示 active(running) 即正常)
systemctl status rabbitmq-server

✅ 访问Web管理后台(浏览器直接打开)

✔ 访问地址

http://你的服务器公网IP:15672
❗ 注意:是 http 不是 https !! 端口是 15672 不是 5672!
✅ 此时输入账号密码,**直接就能登录成功**,进入可视化后台!

---
## ✅ 【强烈推荐】生产环境必做:创建新的管理员账号(替换默认guest)
默认的`guest/guest`账号虽然能登录,但是**安全性极低**,建议创建一个自定义的管理员账号,并且删除默认guest账号,命令直接复制执行即可:

1. 创建新账号 例如:账号 admin 密码 Admin@123456(自己改密码)

rabbitmqctl add_user admin Admin@123456

2. 给新账号分配【超级管理员】权限

rabbitmqctl set_user_tags admin administrator

3. 给新账号分配所有权限(允许操作所有队列/交换机/虚拟主机)

rabbitmqctl set_permissions -p / admin "." "." ".*"

执行完后,就可以用你新建的账号(如`admin/Admin@123456`)登录管理后台了。

---
## ✅ Web管理后台能做什么?(可视化操作,超方便)
登录后的后台可以做所有RabbitMQ的管理操作,不用记任何命令,纯鼠标点击:
1. 查看 RabbitMQ 运行状态、节点信息、内存/磁盘占用;
2. 可视化创建/删除 交换机、队列、绑定关系;
3. 手动发送测试消息、查看队列中的消息、清空消息;
4. 管理所有用户、分配用户权限、创建虚拟主机;
5. 查看连接数、信道数、消息收发统计;
6. 开启/关闭其他插件、查看日志等。

---
## ✅ 常见访问失败问题排查(按顺序排查,100%解决)
### ❌ 问题1:浏览器访问 `http://公网IP:15672` 打不开、超时、无响应
✅ 解决方案(按优先级):
1. 检查是否执行了 `rabbitmq-plugins enable rabbitmq_management` 启用插件;
2. 检查防火墙命令是否执行,端口是否放行:`firewall-cmd --list-ports` 能看到15672和5672即可;
3. **重中之重**:阿里云控制台的安全组,是否真的添加了这两个端口的入站规则;
4. 检查RabbitMQ服务是否正常运行:`systemctl status rabbitmq-server` 显示 active;

### ❌ 问题2:能打开登录页,输入 guest/guest 提示「登录失败/用户不存在」
✅ 解决方案:
1. 检查是否配置了 `loopback_users = none` 这个核心配置;
2. 检查配置文件权限是否正确:`ls -l /etc/rabbitmq/rabbitmq.conf` 所有者是 rabbitmq:rabbitmq;
3. 重启RabbitMQ服务:`systemctl restart rabbitmq-server`;

### ❌ 问题3:执行命令提示 `rabbitmqctl: command not found`
✅ 解决方案:

ln -s /usr/lib/rabbitmq/bin/rabbitmqctl /usr/bin/rabbitmqctl
ln -s /usr/lib/rabbitmq/bin/rabbitmq-plugins /usr/bin/rabbitmq-plugins


### ❌ 问题4:重启服务提示 `Permission denied` 权限错误
✅ 解决方案:

chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
chown -R rabbitmq:rabbitmq /var/log/rabbitmq/


---
## ✅ 总结(核心要点,记牢即可)
1. RabbitMQ Web管理后台是**插件**,开启命令:`rabbitmq-plugins enable rabbitmq_management`;
2. 公网访问**必配配置**:`loopback_users = none`,否则本地能登、公网登不了;
3. 必放行2个端口:`15672(网页管理)`、`5672(程序通信)`;
4. 所有配置改完,**必须重启RabbitMQ** 才生效;
5. 默认账密:`guest/guest`,生产环境建议替换成自定义账号。

你想要的无需自身开发、用户安装后就能直接用的第三方消息通知APP,大多是开源轻量型工具,用户安装后获取密钥或绑定服务器就能接收通知,适配个人或中小团队的各类通知场景,以下是几款主流工具:

  1. PushDeer
    这款开源工具主打“无需开发自有APP”,用户直接安装官方APP或使用轻应用即可。使用时,用户安装后绑定设备会生成专属pushkey,你只需通过简单的HTTP请求,就能向绑定的设备推送文字、图片、Markdown格式的消息。它还支持自架服务器,数据安全性更高,适合给用户推送订单提醒、系统通知等内容。比如用户开户登录后,将其pushkey与账号绑定,后续就能精准推送相关业务消息。
  2. PushMe
    专为安卓设备设计的轻量级通知APP,安装包不到3M,无多余功能。用户安装后无需注册登录,获取专属push_key就能接收通知,操作零门槛。它支持文本、Markdown、HTML等多种消息格式,还能自定义通知的声音、震动方式,甚至支持语音播报消息。其接口兼容企业微信、钉钉等群机器人,可直接替换对接,适合快速给安卓用户推送服务器监控、业务提醒等消息。
  3. Ntfy
    开源免费的跨平台通知APP,覆盖安卓、iOS及桌面端,核心优势是无需账号和复杂配置。用户安装后订阅对应的主题,你通过HTTP请求就能向该主题推送消息,用户端实时接收。它支持消息优先级设置、文件附件发送,还能端到端加密保障隐私。如果有更高的数据掌控需求,也可自托管服务器,适合给用户推送日常业务通知、离线消息等。
  4. Gotify
    开源的消息推送工具,搭配对应的安卓客户端APP使用。你可先搭建简易的Gotify服务器,用户安装APP后,输入服务器地址和访问令牌就能完成绑定。后续通过调用简单的API,就能向用户推送消息,还能设置消息优先级,让重要的开户成功通知、业务预警等消息优先展示。该工具适合小团队定向给用户推送精准通知,且安全性可通过SSL加密保障。
  5. 灵动通知
    一款轻量化的免费通知管理APP,用户安装后开启无障碍服务权限即可使用,无需额外开发对接。它能聚合接收社交软件、应用推送、系统通知等各类消息,还支持灵动岛胶囊样式弹窗,用户不用解锁手机就能查看消息。如果你的平台消息需适配用户手机的多样化通知场景,这款APP可让用户快速接收和查看消息,适合日常通用类通知推送。

Redis 是可以转移(迁移/搬迁) 的,无论是迁移数据到新实例、新服务器,还是整体迁移 Redis 服务,都有成熟的方案。具体迁移方式需根据场景(如是否停机、数据量大小、是否跨版本/跨架构)选择,以下是最常用的方法和注意事项:

一、核心迁移场景

1. 单机 Redis 迁移到新服务器/新端口
2. 集群(Redis Cluster)迁移(扩缩容/整体搬迁)
3. 主从架构迁移(切换主节点/迁移从节点)
4. 云厂商 Redis 实例迁移到自建/其他云

二、常用迁移方法(按优先级/场景划分)

方法 1:RDB 冷迁移(停机迁移,适合小数据量)

原理:通过 Redis 的 RDB 持久化文件(快照)迁移数据,需停机保证数据一致性。
步骤:

1. 目标实例:停止 Redis 服务,清空原有数据( redis-cli FLUSHALL ),确保配置(端口、密码、持久化策略)与源实例兼容。
2. 源实例:

  • 停机: redis-cli SHUTDOWN SAVE (优雅关闭,自动生成最新 RDB 文件);
  • 若不停机:执行  redis-cli BGSAVE ,等待后台生成 RDB(默认路径  dump.rdb )。
    3. 拷贝 RDB 文件:用  scp / rsync  将源实例的  dump.rdb  拷贝到目标实例的 Redis 数据目录(通过  redis-cli CONFIG GET dir  查看)。
    4. 启动目标 Redis: redis-server redis.conf ,自动加载 RDB 文件恢复数据。
    5. 验证: redis-cli KEYS *  或  dbsize  确认数据一致。

优点:简单、速度快;
缺点:需停机(或 BGSAVE 期间可能有少量数据丢失),不适合高可用场景。

方法 2:AOF 迁移(精准恢复,适合需完整数据)

原理:AOF 是增量日志,记录所有写操作,恢复后数据与源实例完全一致。
步骤:

1. 源实例:执行  redis-cli BGREWRITEAOF (优化 AOF 文件大小),等待重写完成。
2. 拷贝 AOF 文件(默认  appendonly.aof )到目标实例数据目录。
3. 目标实例:修改配置  appendonly yes ,关闭 RDB(可选),启动 Redis 自动加载 AOF。
注意:AOF 文件通常比 RDB 大,加载速度慢,适合数据量小、对一致性要求极高的场景。

方法 3:redis-migrate-tool(开源工具,支持在线迁移)

原理:唯品会开源的 Redis 数据迁移工具,支持单机/集群/主从互迁,在线无感知迁移。
核心优势:

  • 支持增量同步(迁移过程中源实例的新写入会同步到目标);
  • 支持跨版本、跨架构(如单机→集群、集群→单机);
  • 可校验数据一致性。
    基本使用:

    # 1. 安装(需编译)
    git clone https://github.com/vipshop/redis-migrate-tool.git
    cd redis-migrate-tool && make

2. 编写配置文件(migrate.conf)

[source]
type: single  # 源类型:single/cluster/master/slave
servers:
- 192.168.1.100:6379  # 源实例地址
auth: 123456  # 源密码(可选)

[target]
type: single
servers:
- 192.168.1.101:6379  # 目标实例地址
auth: 654321  # 目标密码(可选)

[common]
listen: 0.0.0.0:8888  # 工具监听端口

3. 启动迁移

./redis-migrate-tool -c migrate.conf -o migrate.log -d

4. 校验数据

./redis-migrate-tool -c migrate.conf -C check

 

方法 4:Redis 复制(主从同步,在线迁移)

原理:将目标实例作为源实例的从节点,同步完成后切换为主节点,适合高可用场景。
步骤:

1. 目标实例:清空数据( FLUSHALL ),确保端口/密码与源兼容。
2. 目标实例执行:

# 连接源主节点(若源有密码,加 -a 密码)
redis-cli SLAVEOF 192.168.1.100 6379
# (可选)设置主节点密码(若源有密码)
redis-cli CONFIG SET masterauth 123456

 
3. 等待同步完成:通过  redis-cli INFO replication  查看  master_link_status:up  且  sync_full:1 。
4. 切换目标为独立主节点:
redis-cli SLAVEOF NO ONE

 
5. 割接业务:将应用的 Redis 连接地址改为目标实例。

优点:完全在线,无数据丢失;
缺点:迁移过程中源实例需承担复制压力,适合中小数据量。

方法 5:集群迁移(Redis Cluster)

若源/目标是 Redis 集群,推荐两种方式:

1. redis-cli --cluster reshard:手动迁移槽位(适合扩缩容);
2. redis-migrate-tool:支持集群→集群、集群→单机的全量+增量迁移(推荐)。

三、迁移关键注意事项

1. 数据一致性:

  • 停机迁移优先用  SHUTDOWN SAVE  生成 RDB,避免数据丢失;
  • 在线迁移需确保迁移期间源实例的写操作被同步(如 redis-migrate-tool 增量同步、主从复制)。
    2. 版本兼容:
  • 低版本→高版本:通常兼容,但需注意新特性(如 Redis 7.0 的 ACL);
  • 高版本→低版本:可能不兼容(如 RDB/AOF 格式差异),建议先测试。
    3. 配置兼容:
  • 目标实例需同步源的关键配置:密码(requirepass)、最大内存(maxmemory)、持久化策略(save/appendonly)、过期策略等。
    4. 性能与压力:
  • 在线迁移时,源实例会有复制/网络压力,建议低峰期操作;
  • 大数据量(TB 级)优先用 redis-migrate-tool 分批次迁移。
    5. 验证:
  • 迁移后必做:校验 key 数量( dbsize )、随机抽查 key 的值、检查过期时间( TTL )、验证业务读写正常。
    6. 回滚方案:
  • 迁移完成后,保留源实例一段时间,若目标异常,可快速切回源实例。

四、总结

迁移方式 适用场景 优点 缺点
RDB 冷迁移 小数据量、可停机 简单、速度快 需停机、可能丢增量数据
主从复制 在线迁移、中小数据量 无停机、数据一致 源实例有复制压力
redis-migrate-tool 全场景(单机/集群、大数量) 在线、增量同步、可校验 需编译安装、配置稍复杂
AOF 迁移 数据一致性要求极高 精准恢复 文件大、加载慢

根据你的实际场景(是否停机、数据量、架构)选择即可,中小规模推荐主从复制,大规模/集群推荐redis-migrate-tool。

redis-migrate-tool 支持通过 增量同步(实时复制) 机制,将迁移结束后源库的新写入数据同步到目标库,核心依赖 Redis 的  SYNC / PSYNC  协议实现。

关键实现逻辑与配置:

1. 增量同步的触发:

  • 工具默认执行「全量迁移 + 增量同步」流程:全量数据传输完成后,不会立即退出,而是持续监听源库的写操作(如  SET 、 HSET 、 LPUSH  等),并实时转发到目标库。
  • 即使全量迁移结束后,源库新增的写入数据,也会被实时同步到目标库,确保两端数据最终一致。
    2. 核心配置(必须启用):
  • 配置文件中需显式开启增量同步(默认开启,无需额外修改,但若手动关闭需恢复):

    [source]
    type: single
    addr: 源库IP:端口
    auth: 源库密码(如有)
    
    [target]
    type: single
    addr: 目标库IP:端口
    auth: 目标库密码(如有)
    
    [common]
    # 增量同步开关(默认yes,开启后全量迁移后持续同步)
    incremental_sync = yes
    # 增量同步超时时间(默认3600秒,0表示无限期同步,直到手动停止)
    incremental_sync_timeout = 0

     
    3. 迁移结束后的操作:

  • 若需长期同步:保持工具运行(后台启动,如  nohup redis-migrate-tool -c config.ini & ),直到业务完全切换到目标库。
  • 停止同步:确认应用已全部切换到目标库后,手动终止工具进程( kill -9 进程ID ),增量同步即停止。

注意事项:

  • 仅支持「单源库 → 单目标库」的增量同步,集群场景需额外配置分片映射。
  • 若迁移过程中工具中断,重启后会通过  PSYNC  协议续传增量数据(无需重新全量迁移)。