全局配置

globalconfigs.yaml 文件中需位于您配置目录的根目录中,并且名称固定为 globalconfigs.yaml。 其中包含 访问日志格式、自定义共享内存区、全局变量 等配置。 在 OpenResty Edge 中,您可以配置多个访问日志格式。为此,访问日志格式以数组形式进行表示。

目录结构

|-- /
  |-- global_configs.yaml

global_configs.yaml 文件中需位于您配置目录的根目录中,并且名称固定为 global_configs.yaml。 其中包含 访问日志格式、自定义共享内存区、动态指标共享缓存区大小、全局变量 等配置。

访问日志格式配置

在 OpenResty Edge 中,您可以配置多个访问日志格式。为此,访问日志格式以数组形式进行表示。

参数说明

参数名数据类型是否必选描述
namestring是访问日志格式的唯一标识名称
formatstring是定义日志格式
escapestring否指定日志字符的转义方式,可选值包括:default、none、json
defaultbool否指定该日志格式是否作为默认日志格式

default 参数决定是否将此日志格式设置为默认选项。如果设置为默认,那么没有特别指定日志格式的应用将采用该格式。 注意:配置中有且只能有一个默认的日志格式。

配置示例

access_log_formats:
- default: false
  name: example
  escape: json
  format: |-
    {
        "time_local": "$time_local",
        "method": "$request_method",
        "request": "$request",
        "transid": "$or_global_user_variable_uuid",
        "upstream_header_time": "$upstream_header_time"
    }

依照此示例配置,将会创建一个名为 example 的访问日志格式。在日志格式列表中,将包含 example 和 main 两个日志格式。 在 format 参数中指定的日志格式内容里,使用了一个名为 uuid 的全局用户变量,表示为 $or_global_user_variable_uuid。

自定义共享内存区配置

您可以定义多个共享内存区,因此这些区域以数组形式表示。

参数详解

参数名数据类型是否必选描述
namestring是共享内存区的唯一标识名称
sizestring否定义共享内存区的容量大小
size_unitstring是指明共享内存区大小的单位,可选值为 k、m、g

配置示例

custom_shared_zone:
- size_unit: m
  name: cache_shared_dict
  size: 1
- size_unit: m
  name: rec_cache_shared_dict
  size: 1

custom_shared_zone 遵循 全局配置 → 全局 Lua 模块 页面的 自动同步到其他分区 选项。关闭该选项时,作用于 -p PARTITION_ID 或 -n PARTITION_NAME 指定的分区。开启该选项时,edge2yaml 把共享内存字典导入到默认分区,替换其他所有分区的共享内存字典,导出时也从默认分区读取。

导入时,按 name 新增或更新共享内存字典,仅存在于 OpenResty Edge 中的共享内存字典会保留。

按分区保存 custom_shared_zone、dymetrics_size 和 dymetrics_size_unit 需要 OpenResty Edge 26.12.1-1 及以上版本和 edge2yaml 1.2.84 及以上版本。OpenResty Edge 版本更早时,edge2yaml 1.2.84 与早期版本的 edge2yaml 一样,通过全局配置保存和导出它们。早期版本的 edge2yaml 无法在 OpenResty Edge 26.12.1-1 及以上版本中保存它们,请与 OpenResty Edge 一起升级 edge2yaml。

动态指标共享缓存区大小

顶层键 dymetrics_size 和 dymetrics_size_unit 用于设置动态指标共享缓存区大小(即 全局配置 → 动态指标配置项 页面)。它们遵循 全局配置 → 通用 页面的 自动同步到其他分区 选项。关闭该选项时,作用于 -p PARTITION_ID 或 -n PARTITION_NAME 指定的分区。开启该选项时,它们保存在默认分区,并应用到所有分区。

参数详解

参数名数据类型是否必选描述
dymetrics_sizenumber否动态指标共享缓存区的大小,设为 null 表示清除该值
dymetrics_size_unitstring否dymetrics_size 的单位,可选值为 k、m、g

文件中未出现的键保持当前值不变。

global_configs.yaml 中的 general 部分保存 通用 页面的配置,不包含 dymetrics_size、dymetrics_size_unit 和 custom_shared_zone。如果旧版本 edge2yaml 导出的文件在 general 下仍带有这些键,导入时会忽略它们。

配置示例

dymetrics_size: 100
dymetrics_size_unit: m

全局用户变量

您可以定义多个全局变量,因此变量以数组形式表示。

参数详解

参数名数据类型是否必选描述
namestring是变量的唯一标识名称
typestring是变量的数据类型,可选值为 string, num, int, bool
defaultstring是变量的默认值

配置示例

user_variables:
- name: uuid
  type: string
  default: '-'

在此示例中,定义了一个名为 uuid 的全局用户变量。

全局用户变量可以在访问日志或 Edgelang 脚本中使用,格式为 $or_global_user_variable_<变量名>。例如:

$or_global_user_variable_uuid

相关文档