文件和目录位置
概述
每个 RabbitMQ 节点都使用多个文件和目录来加载配置、存储数据、元数据、日志文件等。这些位置均可更改。
本指南涵盖
- 如何自定义 RabbitMQ 节点使用的各种目录和文件的位置
- 各种操作系统上关键文件和目录的默认位置
- 与文件和目录位置相关的其他主题
本指南是对主 配置指南 的补充。
覆盖位置
许多 环境变量 指定了 RabbitMQ 应在何处查找某些内容。在大多数环境中,默认值即可正常工作。
路径和目录名称限制
某些环境变量用于配置路径和位置(节点的基目录或数据目录、插件源和扩展目录等)。这些路径必须排除某些字符
*和?(在 Linux、macOS、BSD 和其他类 UNIX 系统上)^和![和]{}和}
上述字符会导致节点无法启动或无法按预期运行(例如无法加载插件代码模块和其他文件)。
所需的文件和目录权限
在更改文件或目录位置时,务必确保 RabbitMQ 节点操作系统进程对其拥有足够的读写权限。最好假设 RabbitMQ 使用的大多数目录和文件都需要读、写以及创建文件的权限。
Debian、RPM、Homebrew 和 Windows 安装程序包会设置适用于大多数环境的文件系统权限。但是,当在系统范围内使用严格的默认权限时,可能需要在安装后执行额外的配置步骤,以确保 RabbitMQ 节点的文件和目录拥有足够的权限。
环境变量
| 名称 | 描述 |
|---|---|
| RABBITMQ_BASE | 注意:Windows 专用。此基目录包含 RabbitMQ 服务器数据库和日志文件的子目录。与其分别覆盖 RABBITMQ_MNESIA_BASE 和 RABBITMQ_LOG_BASE,不如直接覆盖该基目录更为简便。 |
| RABBITMQ_CONFIG_FILE | 主 RabbitMQ 配置文件路径,例如 |
| RABBITMQ_CONFIG_FILES | 指向新式 (.conf) 格式的 RabbitMQ 配置文件目录的路径。文件将按字母顺序加载。给每个文件加上数字前缀是一种常见做法。更多信息请参见 配置指南。 |
| RABBITMQ_MNESIA_BASE | 此基目录包含 RabbitMQ 服务器节点数据库、消息存储和集群状态文件的子目录(每个节点一个),除非显式设置了 RABBITMQ_MNESIA_DIR。重要的是,有效的 RabbitMQ 用户必须始终在此目录中拥有足够的权限来读取、写入和创建文件及子目录。该变量通常不被覆盖,通常会覆盖 |
| RABBITMQ_MNESIA_DIR | 存储此 RabbitMQ 节点数据的目录。这包括模式数据库、消息存储、集群成员信息和其他持久化节点状态。 |
| RABBITMQ_SCHEMA_DIR | RabbitMQ 保存新式配置文件所用配置模式的目录。 |
| RABBITMQ_LOG_BASE | 此基目录包含 RabbitMQ 服务器的 日志文件,除非设置了 RABBITMQ_LOGS。 |
| RABBITMQ_LOGS | RabbitMQ 服务器的 Erlang 日志文件路径。此变量在 Windows 上无法覆盖。 |
| RABBITMQ_PLUGINS_DIR | 定位和提取插件存档文件的目录列表。这是一个类似 |
| RABBITMQ_PLUGINS_EXPAND_DIR | 服务器启动时用于扩展已启用插件的工作目录。重要的是,有效的 RabbitMQ 用户必须在此目录中拥有足够的权限来读取和创建文件及子目录。 |
| RABBITMQ_ENABLED_PLUGINS_FILE | 此文件记录显式启用的插件。当启用或禁用插件时,此文件将被更新。重要的是,有效的 RabbitMQ 用户必须始终在此文件中拥有足够的权限来读取、写入和创建文件。 |
| RABBITMQ_FEATURE_FLAGS_FILE | 此文件包含所有已启用功能标志的列表。当启用功能标志时,此文件将被更新。极其重要的是,有效的 RabbitMQ 用户必须始终在此文件中拥有足够的权限来读取、写入和创建文件。 |
| RABBITMQ_PID_FILE | 用于存放进程 ID 的文件,供 |
Linux、macOS、BSD 上的默认位置
下表中指示了某些路径的 ${install_prefix}。Debian 和 RPM 软件包安装使用空的 ${install_prefix}。
Homebrew 安装在安装时使用安装前缀(Homebrew Cellar)。在基于 Apple Silicon 的 Mac 上,默认情况下这是 /opt/homebrew。
| 名称 | 位置 |
|---|---|
| RABBITMQ_BASE | (未使用 - 仅限 Windows) |
| RABBITMQ_CONFIG_FILE |
|
| RABBITMQ_MNESIA_BASE |
|
| RABBITMQ_MNESIA_DIR |
|
| RABBITMQ_LOG_BASE |
|
| RABBITMQ_LOGS |
|
| RABBITMQ_PLUGINS_DIR |
请注意, |
| RABBITMQ_PLUGINS_EXPAND_DIR |
|
| RABBITMQ_ENABLED_PLUGINS_FILE |
|
| RABBITMQ_FEATURE_FLAGS_FILE |
|
| RABBITMQ_PID_FILE |
|
Windows 上的默认位置
| 名称 | 位置 |
|---|---|
| RABBITMQ_BASE |
|
| RABBITMQ_CONFIG_FILE |
|
| RABBITMQ_MNESIA_BASE |
|
| RABBITMQ_MNESIA_DIR |
|
| RABBITMQ_LOG_BASE |
|
| RABBITMQ_LOGS |
|
| RABBITMQ_PLUGINS_DIR | 安装目录 |
| RABBITMQ_PLUGINS_EXPAND_DIR |
|
| RABBITMQ_ENABLED_PLUGINS_FILE |
|
| RABBITMQ_FEATURE_FLAGS_FILE |
|
| RABBITMQ_PID_FILE | (当前不支持) |
通用二进制构建默认值
这些是解压通用二进制构建存档且未做任何修改时获得的默认值。在此表中,$RABBITMQ_HOME 指代提取存档后产生的目录。
对于使用相同包类型但进行了大量定制的安装选项(例如 Homebrew 公式),这些路径不适用。
| 名称 | 位置 |
|---|---|
| RABBITMQ_BASE | (未使用) |
| RABBITMQ_CONFIG_FILE |
|
| RABBITMQ_MNESIA_BASE |
|
| RABBITMQ_MNESIA_DIR |
|
| RABBITMQ_LOG_BASE |
|
| RABBITMQ_LOGS |
|
| RABBITMQ_PLUGINS_DIR |
|
| RABBITMQ_PLUGINS_EXPAND_DIR |
|
| RABBITMQ_FEATURE_FLAGS_FILE |
|
| RABBITMQ_PID_FILE |
|