nginx模組使用自定義變數

2021-07-05 21:32:29 字數 1396 閱讀 8482

在模組中,我們要使用乙個自定義的變數。

1、首先,需要新增乙個變數

呼叫ngx_http_add_variable函式來新增乙個變數,新增時指明變數的名稱和變數型別。

name: 即變數的名字

flags: 如果同乙個變數要多次新增,則flags應該設定ngx_http_var_changeable

否則,多次新增將會提示重複

flags表示可以是:ngx_http_var_changeable

2、然後,獲取變數

要獲取變數,如果要高效一點,可以先將該變數放到索引陣列,通過ngx_http_get_variable_index來新增乙個變數的索引:

// name: 即nginx支援的任意變數名

// 返回該變數的索引

通過該介面操作新增的變數必須是nginx支援的已存在的變數。如果是hash過的變數,則一定是通過ngx_http_add_variable新增的變數,否則,一定是規則變數,如」http_host」。

索引變數的獲取,可以通過ngx_http_get_indexed_variable與ngx_http_get_flushed_variable來獲取。

而如果沒有索引過的變數,則只能通過ngx_http_get_variable函式來獲取了。

// key 由ngx_hash_strlow來計算  

key是通過ngx_hash_strlow來計算的,所以變數名是沒有大小寫區分的。

通過獲取變數的函式,我們可以看到,變數是與請求相關的,也就是獲取的變數都是與當前請求相關的。

Nginx 如何自定義變數?

之前的兩篇文章 nginx 變數介紹以及利用 nginx 變數做防盜煉 講的是 nginx 有哪些變數以及乙個常見的應用。那麼如此靈活的 nginx 怎麼能不支援自定義變數呢,今天的文章就來說一下自定義變數的幾個模組以及 nginx 的 keepalive 特性。模組 ngx http map mo...

nginx自定義變數與內建預定義變數

nginx可以使用變數簡化配置與提高配置的靈活性,所有的變數值都可以通過這種方式引用 變數名而nginx中的變數分為兩種,自定義變數與內建預定義變數 宣告可以在sever,http,location等標籤中使用set命令 非唯一 宣告變數,語法如下 set 變數名 變數值注意nginx中的變數必須都...

自定義模組

自定義模組 也就是我們自己寫的 1.配置模組說明檔案 npm init 就會生成乙個package.json的檔案 main index.js 我們的主檔案是index.js index.js是這個包的輸出檔案,即便刪除了package.json只要不改變index.js的檔名就沒事,一旦改了就會報...