跳至主内容
版本:4.2

文件和目录位置

概述

每个 RabbitMQ 节点使用多个文件和目录来加载配置:存储数据、元数据、日志文件等。它们的位置可以更改。

本指南涵盖

  • 如何自定义 RabbitMQ 节点使用的各种目录和文件的位置
  • 各种操作系统上关键文件和目录的默认位置
  • 与文件和目录位置相关的其他主题

本指南是主要 配置指南 的补充。

覆盖位置

许多 环境变量 指定了 RabbitMQ 应在哪里查找某些内容。在大多数环境中,默认值应该就可以了。

路径和目录名称限制

一些环境变量配置了路径和位置(节点的基础目录或数据目录、插件源目录和扩展目录等)。这些路径必须排除一些字符

  • *? (在 Linux、macOS、BSD 和其他类 UNIX 系统上)
  • ^!
  • []
  • {{}}

上述字符将导致节点无法启动或无法按预期运行(例如,加载插件代码模块和其他文件)。

所需文件和目录权限

更改文件或目录位置时,确保它们具有足够的权限供 RabbitMQ 节点操作系统进程读取和写入非常重要。最好假设 RabbitMQ 使用的大多数目录和文件都需要读取、写入和文件创建权限。

DebianRPMHomebrewWindows 安装程序 包将设置适用于大多数环境的文件系统权限,但是,当在系统范围内使用严格的默认权限时,可能需要在安装后运行额外的配置步骤,以确保 RabbitMQ 节点文件和目录具有足够的权限。

环境变量

名称描述
RABBITMQ_BASE

注意:仅限 Windows。此基础目录包含 RabbitMQ 服务器数据库和日志文件的子目录。与其单独覆盖 RABBITMQ_MNESIA_BASERABBITMQ_LOG_BASE,不如覆盖基础目录可能更简单。

RABBITMQ_CONFIG_FILE

配置文件路径,不含 .config 扩展名。如果存在 配置文件,则服务器将使用它来配置 RabbitMQ 组件。有关更多信息,请参阅 配置指南

RABBITMQ_CONFIG_FILES

指向 RabbitMQ 配置文件的目录(新样式 .conf 格式)。文件将按字母顺序加载。在每个文件名前加上数字是一种常见做法。有关更多信息,请参阅 配置指南

RABBITMQ_MNESIA_BASE

此基础目录包含 RabbitMQ 服务器的节点数据库、消息存储和集群状态文件,每个节点一个,除非明确设置了 RABBITMQ_MNESIA_DIR。有效的 RabbitMQ 用户在此目录中随时拥有足够的权限来读取、写入和创建文件及子目录至关重要。此变量通常不被覆盖。通常而是覆盖 RABBITMQ_MNESIA_DIR

RABBITMQ_MNESIA_DIR

此 RabbitMQ 节点数据存储的目录。这包括模式数据库、消息存储、集群成员信息和其他持久化节点状态。

RABBITMQ_SCHEMA_DIR

RabbitMQ 存储其配置模式的目录,该模式由 新样式配置文件 使用。

RABBITMQ_LOG_BASE

此基础目录包含 RabbitMQ 服务器的 日志文件,除非设置了 RABBITMQ_LOGS

RABBITMQ_LOGS

RabbitMQ 服务器 Erlang 日志文件的路径。此变量在 Windows 上无法覆盖。

RABBITMQ_PLUGINS_DIR

插件 存档文件所在和从中提取的目录列表。这是一个类似 PATH 的变量,其中不同的路径由操作系统特定的分隔符(Unix 为 :,Windows 为 ;)分隔。插件可以 安装 到此处列出的任何目录。

RABBITMQ_PLUGINS_EXPAND_DIR

服务器启动时用于 展开已启用插件 的工作目录。有效的 RabbitMQ 用户在此目录中拥有足够的权限来读取和创建文件及子目录至关重要。

RABBITMQ_ENABLED_PLUGINS_FILE

此文件记录明确启用的插件。当启用或禁用插件时,此文件将被更新。有效的 RabbitMQ 用户在此文件上随时拥有足够的权限来读取、写入和创建至关重要。

RABBITMQ_FEATURE_FLAGS_FILE

此文件包含所有已启用 功能标志 的列表。当启用功能标志时,此文件将被更新。有效的 RabbitMQ 用户在此文件上随时拥有足够的权限来读取、写入和创建至关重要。

RABBITMQ_PID_FILE

用于 rabbitmqctl wait 的进程 ID 放置的文件。

Linux、macOS、BSD 上的默认位置

下表中的 ${install_prefix} 指示某些路径。Debian 和 RPM 包安装使用空的 ${install_prefix}

Homebrew 安装 在安装时使用 **安装前缀**(Homebrew Cellar)。默认情况下,Apple Silicon Mac 上的此值为 /opt/homebrew

名称位置
RABBITMQ_BASE

(未使用 - 仅限 Windows)

RABBITMQ_CONFIG_FILE

${install_prefix}/etc/rabbitmq/rabbitmq

RABBITMQ_MNESIA_BASE

${install_prefix}/var/lib/rabbitmq/mnesia

RABBITMQ_MNESIA_DIR

$RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME

RABBITMQ_LOG_BASE

${install_prefix}/var/log/rabbitmq

RABBITMQ_LOGS

$RABBITMQ_LOG_BASE/$RABBITMQ_NODENAME.log

RABBITMQ_PLUGINS_DIR

/usr/lib/rabbitmq/plugins:$RABBITMQ_HOME/plugins

请注意,/usr/lib/rabbitmq/plugins 仅在 RabbitMQ 安装 到标准(默认)位置时使用。

RABBITMQ_PLUGINS_EXPAND_DIR

$RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME-plugins-expand

RABBITMQ_ENABLED_PLUGINS_FILE

${install_prefix}/etc/rabbitmq/enabled_plugins

RABBITMQ_FEATURE_FLAGS_FILE

$RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME-feature_flags

RABBITMQ_PID_FILE

$RABBITMQ_MNESIA_DIR.pid

Windows 上的默认位置

名称位置
RABBITMQ_BASE

%APPDATA%\RabbitMQ

RABBITMQ_CONFIG_FILE

%RABBITMQ_BASE%\rabbitmq

RABBITMQ_MNESIA_BASE

%RABBITMQ_BASE%\db

RABBITMQ_MNESIA_DIR

%RABBITMQ_MNESIA_BASE%\%RABBITMQ_NODENAME%-mnesia

RABBITMQ_LOG_BASE

%RABBITMQ_BASE%\log

RABBITMQ_LOGS

%RABBITMQ_LOG_BASE%\%RABBITMQ_NODENAME%.log

RABBITMQ_PLUGINS_DIR

安装目录/plugins

RABBITMQ_PLUGINS_EXPAND_DIR

%RABBITMQ_MNESIA_BASE%\%RABBITMQ_NODENAME%-plugins-expand

RABBITMQ_ENABLED_PLUGINS_FILE

%RABBITMQ_BASE%\enabled_plugins

RABBITMQ_FEATURE_FLAGS_FILE

%RABBITMQ_MNESIA_BASE%\%RABBITMQ_NODENAME%-feature_flags

RABBITMQ_PID_FILE(当前不支持)

通用二进制构建默认值

这些是在解压通用二进制构建存档而不进行任何修改时获得的默认值。在此表中,$RABBITMQ_HOME 指的是解压存档时产生的目录。

这些路径与使用相同包类型但对其进行大量自定义的安装选项(如 Homebrew 公式)无关。

名称位置
RABBITMQ_BASE

(未使用)

RABBITMQ_CONFIG_FILE

$RABBITMQ_HOME/etc/rabbitmq/rabbitmq

RABBITMQ_MNESIA_BASE

$RABBITMQ_HOME/var/lib/rabbitmq/mnesia

RABBITMQ_MNESIA_DIR

$RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME

RABBITMQ_LOG_BASE

$RABBITMQ_HOME/var/log/rabbitmq

RABBITMQ_LOGS

$RABBITMQ_LOG_BASE/$RABBITMQ_NODENAME.log

RABBITMQ_PLUGINS_DIR

$RABBITMQ_HOME/plugins

RABBITMQ_PLUGINS_EXPAND_DIR

$RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME-plugins-expand

RABBITMQ_FEATURE_FLAGS_FILE

$RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME-feature_flags

RABBITMQ_PID_FILE

$RABBITMQ_MNESIA_DIR.pid

© . This site is unofficial and not affiliated with VMware.