全域性配置
目錄結構
|-- /
|-- global_configs.yaml
global_configs.yaml 檔案中需位於您配置目錄的根目錄中,並且名稱固定為 global_configs.yaml。
其中包含 訪問日誌格式、自定義共享記憶體區、動態指標共享快取區大小、全域性變數 等配置。
訪問日誌格式配置
在 OpenResty Edge 中,您可以配置多個訪問日誌格式。為此,訪問日誌格式以陣列形式進行表示。
引數說明
| 引數名 | 資料型別 | 是否必選 | 描述 |
|---|---|---|---|
| name | string | 是 | 訪問日誌格式的唯一標識名稱 |
| format | string | 是 | 定義日誌格式 |
| escape | string | 否 | 指定日誌字元的轉義方式,可選值包括:default、none、json |
| default | bool | 否 | 指定該日誌格式是否作為預設日誌格式 |
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。
自定義共享記憶體區配置
您可以定義多個共享記憶體區,因此這些區域以陣列形式表示。
引數詳解
| 引數名 | 資料型別 | 是否必選 | 描述 |
|---|---|---|---|
| name | string | 是 | 共享記憶體區的唯一標識名稱 |
| size | string | 否 | 定義共享記憶體區的容量大小 |
| size_unit | string | 是 | 指明共享記憶體區大小的單位,可選值為 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_size | number | 否 | 動態指標共享快取區的大小,設為 null 表示清除該值 |
| dymetrics_size_unit | string | 否 | 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
全域性使用者變數
您可以定義多個全域性變數,因此變數以陣列形式表示。
引數詳解
| 引數名 | 資料型別 | 是否必選 | 描述 |
|---|---|---|---|
| name | string | 是 | 變數的唯一標識名稱 |
| type | string | 是 | 變數的資料型別,可選值為 string, num, int, bool |
| default | string | 是 | 變數的預設值 |
配置示例
user_variables:
- name: uuid
type: string
default: '-'
在此示例中,定義了一個名為 uuid 的全域性使用者變數。
全域性使用者變數可以在訪問日誌或 Edgelang 指令碼中使用,格式為 $or_global_user_variable_<變數名>。例如:
$or_global_user_variable_uuid