这是在 “Linux 9” 系统(如 RHEL 9、AlmaLinux 9、Rocky Linux 9)上安装和配置 RabbitMQ 的中文指南。
前提条件:
- 你拥有
sudo
权限。 - 你的系统已连接到互联网。
firewalld
是你当前活动的防火墙(在基于 RHEL 的系统上很常见)。
安装和配置 RabbitMQ 的步骤:
步骤 1:系统更新(推荐)
sudo dnf update -y
步骤 2:添加 Erlang 和 RabbitMQ 仓库
RabbitMQ 依赖 Erlang。最好使用提供兼容版本的仓库。PackageCloud 是 RabbitMQ 官方分发包的方式。
安装
socat
(RabbitMQ 脚本/插件通常依赖它)和添加仓库的工具:sudo dnf install -y socat curl
添加 RabbitMQ 的 PackageCloud Erlang 仓库:
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
添加 RabbitMQ 的 PackageCloud RabbitMQ Server 仓库:
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
运行这些脚本后,你的系统将被配置为从这些受信任的源获取 Erlang 和 RabbitMQ。
步骤 3:安装 Erlang 和 RabbitMQ Server
sudo dnf install -y erlang rabbitmq-server
这会先安装 Erlang,然后安装 RabbitMQ 服务器。
步骤 4:启用并启动 RabbitMQ 服务
sudo systemctl enable --now rabbitmq-server
sudo systemctl status rabbitmq-server
--now
标志会同时启用服务(开机自启)并立即启动它。检查状态以确保它是 active (running)
(活动运行中)。
步骤 5:启用 RabbitMQ 管理插件
这个插件提供了一个基于 Web 的 UI,用于管理 RabbitMQ,非常有用。
sudo rabbitmq-plugins enable rabbitmq_management
启用后,管理插件将监听端口 15672
。
步骤 6:配置防火墙
你需要为 RabbitMQ 打开以下端口:
5672
: AMQP 0-9-1 和 AMQP 1.0(客户端连接)15672
: RabbitMQ 管理界面(如果已启用)25672
: Erlang 分布式通信端口,用于节点间和 CLI 工具通信(对集群和某些rabbitmqctl
命令很重要)
sudo firewall-cmd --permanent --add-port=5672/tcp
sudo firewall-cmd --permanent --add-port=15672/tcp
sudo firewall-cmd --permanent --add-port=25672/tcp # 对于 rabbitmqctl 和集群很重要
sudo firewall-cmd --reload
步骤 7:创建 RabbitMQ 管理员用户
默认情况下,guest
用户只能从 localhost
连接。为了远程访问管理界面或让应用程序连接,你应该创建一个新用户。
添加新用户(请将
myadmin
和mypassword
替换为你想要的凭据):sudo rabbitmqctl add_user myadmin mypassword
给用户设置管理员标签:
sudo rabbitmqctl set_user_tags myadmin administrator
为用户授予所有虚拟主机(
/
是默认虚拟主机)的权限:sudo rabbitmqctl set_permissions -p / myadmin ".*" ".*" ".*"
(这授予了用户在
/
虚拟主机内对所有资源的配置、写入和读取权限)。
步骤 8:访问 RabbitMQ 管理界面
打开你的网络浏览器,然后访问:
http://你的服务器IP地址:15672/
(请将 你的服务器IP地址
替换为你的 Linux 9 机器的实际 IP 地址)。
使用你在步骤 7 中创建的用户登录(例如,myadmin
/ mypassword
)。
步骤 9:基本配置(可选,但了解一下比较好)
RabbitMQ 的配置主要通过 rabbitmq.conf
文件进行。
- 配置文件位置:
/etc/rabbitmq/rabbitmq.conf
如果此文件不存在,你可以创建它。如果文件不存在,RabbitMQ 将使用默认值。 - 高级配置(Erlang 术语):
/etc/rabbitmq/advanced.config
(基本设置中较少需要)。
示例 rabbitmq.conf
,用于设置内存限制(如果文件不存在则创建它):
sudo nano /etc/rabbitmq/rabbitmq.conf
添加如下内容:
# 设置总内存高水位线。例如,总 RAM 的 40%。
# 如果你的服务器有 8GB RAM,40% 大约是 3.2GB。
# vm_memory_high_watermark.relative = 0.4
# 或者一个绝对值:
# vm_memory_high_watermark.absolute = 2GB
# 磁盘可用空间限制(例如,如果可用磁盘空间低于 5GB,RabbitMQ 将阻塞生产者)
# disk_free_limit.absolute = 5GB
重要提示: 修改 rabbitmq.conf
后,你需要重启 RabbitMQ 服务:
sudo systemctl restart rabbitmq-server
故障排除:
- 日志: RabbitMQ 日志通常位于
/var/log/rabbitmq/
。如果服务启动失败或遇到问题,请检查这些日志。 rabbitmqctl status
: 提供详细的状态信息。sudo rabbitmqctl status
现在你已经成功安装了一个功能正常的 RabbitMQ 服务器,并带有管理界面和一个管理员用户!你可以开始创建虚拟主机、交换机、队列,并连接你的应用程序了。