当前位置: 首页 > article >正文

在云服务器上安装 RabbitMQ:从零到一的最佳实践

🛠 1. RabbitMQ 简介

RabbitMQ 是一个开源的消息代理中间件,广泛应用于高并发、异步任务队列的场景中。在分布式系统架构中,RabbitMQ 可以充当消息的中转站,帮助不同服务之间进行高效的消息通信。

在这篇文章中,我们将:

  • 直接在云服务器上安装 RabbitMQ
  • 配置防火墙和安全组,让外网访问变得安全
  • 管理默认的 guest 用户,并创建自定义的管理员账户
🔧 2. 环境准备

在开始之前,你需要确保你已经有一台云服务器(例如阿里云或 AWS)。本文假设你使用的是 Ubuntu 服务器,但大部分步骤也适用于其他 Linux 发行版。


🚀 3. 步骤一:安装 RabbitMQ

我们需要先安装 RabbitMQ 的依赖项:Erlang。

3.1 安装 Erlang

RabbitMQ 依赖 Erlang 作为运行环境。运行以下命令来安装 Erlang:

sudo apt-get update
sudo apt-get install -y erlang
3.2 安装 RabbitMQ

一旦 Erlang 安装好后,你可以通过以下命令来安装 RabbitMQ:

sudo apt-get install -y rabbitmq-server
3.3 启动并验证 RabbitMQ 服务

安装完 RabbitMQ 后,确保它在启动并运行:

sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server

验证 RabbitMQ 是否启动:

sudo systemctl status rabbitmq-server

如果显示 active (running),恭喜你!RabbitMQ 已经安装并启动成功。


🔐 4. 防火墙与安全组配置:确保外部访问 RabbitMQ

RabbitMQ 安装好后,默认情况下只允许从本地访问。为了让外部能够访问 RabbitMQ,我们需要在云平台上配置 安全组 以及服务器上的 防火墙

4.1 配置阿里云/云服务商安全组

登录到云平台控制台,找到你的服务器实例,进入安全组设置。我们需要开放两个端口:

  • 15672:RabbitMQ Web 管理界面
  • 5672:AMQP 协议端口,用于客户端连接

添加以下安全组规则:

端口范围协议描述
15672TCP0.0.0.0/0RabbitMQ Web 管理端口
5672TCP0.0.0.0/0AMQP 客户端连接端口
4.2 配置服务器防火墙

RabbitMQ 的端口可能还被服务器的防火墙阻挡。使用 ufw(Ubuntu 默认的防火墙)来开放端口:

sudo ufw allow 15672/tcp
sudo ufw allow 5672/tcp
sudo ufw reload

 通过 ufw status 检查防火墙规则是否生效。

sudo ufw status

👨‍💻 5. 访问 RabbitMQ Web 管理界面

浏览器访问 http://<你的服务器IP>:15672,你应该能看到 RabbitMQ 的登录页面。

5.1 登录问题:guest 用户的远程访问限制

默认情况下,RabbitMQ 安装完成后有一个用户 guest/guest,但出于安全原因,RabbitMQ 只允许 guest 用户从 localhost 登录。

如果你想允许 guest 从外部登录,需要修改配置文件:

sudo nano /etc/rabbitmq/rabbitmq.conf

添加以下内容:

loopback_users = none

保存后重启 RabbitMQ:

sudo systemctl restart rabbitmq-server

你现在可以使用默认的 guest 用户从外部登录。


🧑‍🔧 6. 创建自定义管理员用户

虽然你可以启用 guest 远程登录,但为了提高安全性,建议创建一个新的管理员用户。

6.1 创建新用户

使用以下命令创建一个新用户并赋予管理员权限:

# 创建用户名为 admin,密码为 yourpassword 的用户
sudo rabbitmqctl add_user admin yourpassword

# 赋予管理员权限
sudo rabbitmqctl set_user_tags admin administrator

# 设置用户权限
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

你现在可以使用新的 admin 用户登录 RabbitMQ 管理界面。


🔒 7. 更改 guest 用户密码

出于安全考虑,最好禁用或更改 guest 用户的默认密码。你可以通过以下命令修改 guest 用户的密码:

sudo rabbitmqctl change_password guest newpassword

8. 最后一步:验证一切是否工作正常

  • 通过 http://<你的服务器IP>:15672 登录 RabbitMQ 管理界面,使用你新创建的用户或修改后的 guest 用户。
  • 验证客户端是否可以通过 AMQP 协议连接(使用 5672 端口)。

http://www.kler.cn/news/304451.html

相关文章:

  • 机械学习—零基础学习日志(Python做数据分析03)
  • JS函数 匿名函数(ES6箭头函数)弄得懂吗?
  • linux 定时将固态硬盘数据备份至机械硬盘
  • 测试质量体系的风险评估和应对措施有哪些
  • UART 16550的使用
  • Git常用命令备忘
  • 【数据结构和算法实践-树-LeetCode110-平衡二叉树】
  • 【STM32 HAL库】IIC通信与CubeMX配置
  • InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE)
  • S32G EB tresos AutoCore下载和激活方法
  • GSEP 7级T2真题 [202312]纸牌游戏
  • [pytorch] 训练节省显存的技巧
  • Kizuna AI——AI驱动虚拟偶像,AI分析观众的反应和互动,应用娱乐、直播和广告行业
  • Linux(RedHat或CentOS)下如何开启telnet服务
  • 【时时三省】(C语言基础)指针进阶 例题7
  • SQLITE3数据库实现信息的增删改查
  • ensp—路由过滤、路由引入、路由策略
  • 【基础知识复习 - 随机练习题】
  • 1935. 公交换乘(transfer)
  • 常用环境部署(二十)——docker部署OpenProject
  • 基于华为云服务器的网页部署
  • 【Android】使用和风天气API获取天气数据吧!(天气预报系列之一)
  • ARCGIS PRO DSK MapTool
  • 使用Azure Devops Pipeline将Docker应用部署到你的Raspberry Pi上
  • 【Hadoop|MapReduce篇】Hadoop序列化概述
  • LabVIEW FIFO详解
  • 分享六款小众宝藏软件,建议收藏!
  • golang os.Eixt的介绍和使用
  • 【C++】vector常见用法
  • 数字化大屏解决方案 - GoView