ngx_http_keyval_module 模組
範例配置 指令 keyval keyval_zone |
ngx_http_keyval_module
模組(1.13.3)會建立變數,其值取自 API 或變數(1.15.10)管理的鍵值對,該變數也可以使用 njs 設定。
此模組是我們商業訂閱的一部分。
範例配置
http { keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval; keyval $arg_text $text zone=one; ... server { ... location / { return 200 $text; } location /api { api write=on; } } }
指令
語法 |
keyval |
---|---|
預設值 | — |
內容 |
http |
建立一個新的 $variable
,其值是透過鍵值資料庫中 key
查找而得。比對規則是由 type
參數在 keyval_zone
指令中定義。該資料庫儲存在由 zone
參數指定的共享記憶體區域中。
語法 |
keyval_zone |
---|---|
預設值 | — |
內容 |
http |
設定保存鍵值資料庫的共享記憶體區域的 name
和 size
。鍵值對由 API 管理。
可選的 state
參數指定一個 file
,該檔案以 JSON 格式保存鍵值資料庫的目前狀態,並使其在 nginx 重新啟動後保持持續存在。應避免直接變更檔案內容。
範例
keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval; # path for Linux keyval_zone zone=one:32k state=/var/db/nginx/state/one.keyval; # path for FreeBSD
可選的 timeout
參數(1.15.0)設定鍵值對從區域中移除的時間。
可選的 type
參數(1.17.1)啟用額外的索引,該索引針對比對特定類型的鍵進行最佳化,並定義在評估 keyval $variable
時的比對規則。
該索引儲存在相同的共享記憶體區域中,因此需要額外的儲存空間。
type=string
- 預設值,未啟用索引;變數查詢是使用記錄鍵和搜尋鍵的完全比對來執行
type=ip
- 搜尋鍵是 IPv4 或 IPv6 位址或 CIDR 範圍的文字表示;要比對記錄鍵,搜尋鍵必須屬於記錄鍵指定的子網路,或與 IP 位址完全比對
type=prefix
- 變數查詢是使用記錄鍵和搜尋鍵的首碼比對來執行 (1.17.5);要比對記錄鍵,記錄鍵必須是搜尋鍵的首碼
可選的 sync
參數 (1.15.0) 啟用共享記憶體區域的同步。同步需要設定 timeout
參數。
如果啟用同步,則鍵值對的移除(無論是一個或全部)將僅在目標叢集節點上執行。其他叢集節點上的相同鍵值對將在 timeout
時移除。