全域性配置

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

相關文件