ngx_stream_keyval_module 模組
範例設定 指令 keyval keyval_zone |
ngx_stream_keyval_module
模組 (1.13.7) 會建立變數,其值取自 API 管理的鍵值對,或可使用 njs 設定的變數。
此模組可作為我們商業訂閱的一部分使用。
範例設定
http { server { ... location /api { api write=on; } } } stream { keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval; keyval $ssl_server_name $name zone=one; server { listen 12345 ssl; proxy_pass $name; ssl_certificate /usr/local/nginx/conf/cert.pem; ssl_certificate_key /usr/local/nginx/conf/cert.key; } }
指令
語法 |
keyval |
---|---|
預設 | — |
上下文 |
stream |
建立一個新的 $variable
,其值會透過在鍵值資料庫中尋找 key
來取得。比對規則由 keyval_zone
指令的 type
參數定義。資料庫儲存在由 zone
參數指定的共享記憶體區域中。
語法 |
keyval_zone |
---|---|
預設 | — |
上下文 |
stream |
設定共享記憶體區域的 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
後移除。