在云服务器上安装 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 协议端口,用于客户端连接
添加以下安全组规则:
| 端口范围 | 协议 | 源 | 描述 |
|---|---|---|---|
| 15672 | TCP | 0.0.0.0/0 | RabbitMQ Web 管理端口 |
| 5672 | TCP | 0.0.0.0/0 | AMQP 客户端连接端口 |
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 端口)。
相关文章:
在云服务器上安装 RabbitMQ:从零到一的最佳实践
🛠 1. RabbitMQ 简介 RabbitMQ 是一个开源的消息代理中间件,广泛应用于高并发、异步任务队列的场景中。在分布式系统架构中,RabbitMQ 可以充当消息的中转站,帮助不同服务之间进行高效的消息通信。 在这篇文章中,我们…...
【nginx】搭配okhttp 配置反向代理
nginx的默认是一个反向代理。 nginx会默认把输入的请求,转向其他的服务器执行。 这些转向的服务器与客户端发起的服务器不是同一个。 客户端只认识nginx,不知道ngiix转向何方。 正向代理修改okhttp的proxy,实际上很多代理都是正向的。 反向代理修改请求路径到nginx。 感觉还…...
Android V 广播注册和配置注意事项问题
现象 在Android V平台上,应用注册非Protected广播时,如果没有加导出flag会抛出异常导致进程crash。 E/AndroidRuntime: FATAL EXCEPTION: main java.lang.SecurityException: com.demo.myapplication: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORT…...
深入解读Docker核心原理:Namespace资源隔离机制详解
在容器技术中,资源隔离 是容器化能够实现轻量级虚拟化的关键技术之一。通过资源隔离,容器可以拥有自己的独立环境,确保容器之间互不干扰,从而实现应用的安全和稳定。Docker作为主流的容器平台,其核心的资源隔离机制依赖…...
学习通、智慧职教刷课脚本
🐐个人主页 可惜已不在 🐋可以分享给身边有需要的人🐶 🐉有用的话就留下一个三连吧😼 目录 一.安装 脚本运行器 篡改猴 - Microsoft Edge Addons 二.安装脚本 三.扩展 一.安装 脚本运行器 安装浏览器 Microsoft E…...
SEO写作:从实战到精进的全方位指南
在数字化浪潮中,SEO不再是简单的关键词堆砌,而是成为企业品牌建设与市场拓展的核心策略。作为一名深耕SEO领域的实践者,我深知其中的门道与奥秘。今天,我将结合过往实战经验,以独特视角,带你一窥SEO写作的精…...
解决 git 不是内部或外部命令,也不是可运行的程序
目录 报错提示: 一、解决办法 1、从git官网下载windows版本的git 2、安装 3、注意事项 二、报错 1、解决 fatal: Not a git repository (or any of the parent directories): .git 问题 报错提示: 一、解决办法 Windows下配置Git: 1…...
【卷起来】VUE3.0教程-07-异步请求处理(springboot后端)
🌲 服务端接口准备 pom文件,引入mybatis/mybatis-plus相关依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>&…...
初一信息科技2024指南辅助教学软件(抓包软件)
专门针对信息科技20204指南写的程序,互联网和直播等知识中包含tcp/ip和udp,三次握手等原理,需要简单明了的实验来说明,在机房中需要用抓包软件,可能需要安装windump npcap等软件非常繁琐,还需要接触保护卡&…...
上汽大众:存储成本节约85%,查询性能提升5倍|OceanBase案例
近日,上汽大众汽车有限公司(简称“上汽大众”)的积分卡券等关键业务系统,已成功升级至 OB Cloud 云数据库。借助 OceanBase 原生分布式数据库的卓越性能与先进技术,实现了存储成本的大幅降低,高达85%&#…...
如何快准稳 实现MySQL大表历史数据迁移?
历史迁移解决方案以微服务架构为基础,使用多种设计模式,如:单例、桥接、工厂、模板、策略等。其中涉及的核心技术有多线程、过滤器等,致力于解决MySQL大表迁移的问题,提供多种迁移模式,如:库到库…...
C和指针:函数
函数定义 函数体就是一个代码块,它在函数被调用时执行。 类型 函数名(形式参数) 代码块 与函数定义相反,函数声明出现在函数被调用的地方。 函数声明 编译器是如何知道该函数期望接受的是什么类型和多少数量的参数。 原型 int *find_int( int key…...
Linux——分离部署,分化压力
PQS/TPS 每秒请求数/ 每秒事务数 // 流量衡量参数 可以根据预估QPS 和 服务器的支持的最高QPS 对照计算 就可以得出 需要上架的服务器的最小数量 PV 页面浏览数 UV 独立用户访问量 // 对于网站的总体访问量 response time 响应时间 // 每个请求的响应时间…...
javaaaa
1 飞机票 代码实现: import java.util.Scanner; public class F1 {public static void main(String[] args) {Scanner input new Scanner(System.in);System.out.print("请输入票价: ");double jia input.nextDouble();System.out.print(&…...
游戏开发引擎___unity位置信息和unlit shader(无光照着色器)的使用,以桌子的渲染为例
unity是左手坐标系 1.位置信息 1.1 代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class positionTest : MonoBehaviour {public Camera Camera;private void OnGUI(){//世界坐标系,GUI里的标签GUI.Label(new Rec…...
反向沙箱的功能特点
在这个信息化飞速发展的时代,企业的数据安全面临着前所未有的挑战。员工的无意操作、恶意软件的潜伏、甚至是敌对势力的网络攻击,都可能成为企业数据安全的致命威胁。深信达SPN反向沙箱为您筑起了一道坚不可摧的数据安全防线! 来百度APP畅享高…...
可测试,可维护,可移植:上位机软件分层设计的重要性
互联网中,软件工程师岗位会分前端工程师,后端工程师。这是由于互联网软件规模庞大,从业人员众多。前后端分别根据各自需求发展不一样的技术栈。那么上位机软件呢?它规模小,通常一个人就能开发一个项目。它还有必要分前…...
构造函数与析构函数的执行顺序
对象作为成员变量的构造函数与析构函数 当一个类包含另一个类的对象作为成员时,这些成员对象的构造函数会在包含它们的对象的构造函数之前被调用,而它们的析构函数则会在包含它们的对象的析构函数之后被调用。成员对象的构造函数和析构函数的调用顺序与…...
Vue框架;Vue中的选择和循环结构;Vue数据类型;Vue中的事件和动态属性;Vue子组件通过导入在主组件显示在网页;Vue中主组件向子组件传递数据
一,Vue简介 前端现在比较火的三大框架就是:vue ,React,Angular。在国内使用最多的还是: vue >React >Angular Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准…...
懒人笔记-opencv4.8.0篇
懒人笔记-opencv4.8.0篇 前言1、卸载 opencv3.4.31.1 cmake1.2 编译过程1.3 卸载1.4 检查代码是否卸载干净 2、安装 opencv4.8.02.1 安装依赖2.2 创建编译目录2.3 设置编译选项2.4 执行编译命令2.5 环境配置2.5.1、环境配置添加库路径2.5.2 更新系统2.5.3 配置bash2.5.4 保存退…...
GD32F103C8T6烧录方式全解析:串口ISP、ST-Link Utility、Keil在线,哪种最适合你?
GD32F103C8T6烧录方案深度评测:从原型开发到量产部署的全场景指南 在嵌入式开发领域,选择正确的程序烧录方式往往决定着开发效率和生产成本。作为STM32F103的国产替代方案,GD32F103C8T6凭借其出色的性价比赢得了广泛关注。但许多开发者在迁移…...
Fast-GitHub:三步安装解决国内GitHub访问难题的终极指南
Fast-GitHub:三步安装解决国内GitHub访问难题的终极指南 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否经常因为…...
告别答辩PPT焦虑:百考通AI智能生成,高效搞定毕业答辩全流程
毕业季悄然来临,随着毕业论文定稿,答辩PPT成了不少同学面临的下一个挑战。不懂设计、不会梳理逻辑、找不到合适的学术模板……许多同学花费大量时间在排版调整、修改打磨上,不仅效率低下,还常常做出结构混乱、风格不统一的PPT&…...
Gopeed下载器深度解析:从零开始构建你的全平台高速下载解决方案
Gopeed下载器深度解析:从零开始构建你的全平台高速下载解决方案 【免费下载链接】gopeed A fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter. 项目地址: https://gitcode.com/GitHub_Tre…...
fold命令行工具:高效文本数据聚合与分析的瑞士军刀
1. 项目概述:一个为“折叠”而生的高效工具 最近在折腾一些数据处理和文件整理的工作流时,我一直在寻找一个能让我“折叠”起来思考的工具。我说的“折叠”,不是物理上的,而是逻辑上的——把复杂的、多维度的信息,按照…...
从零构建可定制对话系统:架构设计、RAG与智能体实战
1. 项目概述:从零构建一个可定制的对话系统最近在折腾一个挺有意思的东西,我把它叫做“customized-chat”。这名字听起来可能有点泛,但它的核心目标非常明确:打造一个完全由你自己掌控、能深度融入你特定业务逻辑或知识体系的对话…...
多语种出海必备,ElevenLabs菲律宾文语音质量实测对比:Wavenet vs. Instant Voice vs. Custom Model(附MOS评分表)
更多请点击: https://intelliparadigm.com 第一章:多语种出海语音技术演进与菲律宾语本地化挑战 随着全球数字服务加速出海,语音交互系统正从单语种向多语种、低资源语言深度拓展。菲律宾语(Filipino/Tagalog)作为东…...
我给了智能体$100去赚钱,结果...
你看过那些演示。一个自主智能体启动,获得一个目标,然后——跳到两周后的 Twitter 帖子——它不知怎么地就在运营一个 Shopify 店铺、写通讯和炒币了。未来已来。AGI 即将降临。买课吧。 我想找出实际发生了什么。 所以我给了一个智能体 100 美元和一个…...
桌面自动化技能库:基于PyAutoGUI与Selenium的工程化实践
1. 项目概述:一个桌面操作员的技能库最近在GitHub上看到一个挺有意思的项目,叫Marways7/cua_desktop_operator_skill。光看这个名字,可能有点摸不着头脑,但作为一个在自动化运维和桌面支持领域摸爬滚打多年的老手,我立…...
基于Databerry的私有数据AI应用构建:从RAG原理到生产部署
1. 项目概述:一个开箱即用的AI应用构建平台如果你正在寻找一个能快速将私有数据(比如公司文档、个人笔记、产品手册)转化为智能问答机器人的工具,但又不想从零开始折腾复杂的向量数据库、嵌入模型和API集成,那么gmpetr…...
