nginx lua模組常用的指令

2022-03-20 09:12:13 字數 2042 閱讀 4517

語法:lua_code_cache on | off

預設:on

適用上下文:http、server、location、location if

這個指令是指定是否開啟lua的**編譯快取,開發時可以設定為off,以便lua檔案實時生效,如果是生產線上,為了效能,建議開啟。

語法:lua_package_path

預設:由lua的環境變數決定

適用上下文:http

設定lua**的尋找目錄。

例如:lua_package_path "/opt/nginx/conf/www/?.lua;;";

具體的路徑設定要參考lua的模組機制

語法:init_by_lua

適用上下文:

}從這段配置**,我們可以看出,其實這個指令就是初始化一些lua的全域性變數,以便後續的**使用。

注:有(_file)的選項代表可以直接引用外部的lua源**檔案,效果與直接寫配置檔案一樣,不過可維護性當然是分開好點。

類似於上面的,不過是作用在work程序的,先於work程序啟動而呼叫。

語法:set_by_lua $res [$arg1 $arg2 ...]

適用上下文:server、location、location if

location /foo
這個指令是為了能夠讓nginx的變數與lua的變數相互作用賦值

語法:content_by_lua

適用上下文:location、location if

location /nginx_var
通過這個指令,可以由lua直接確定nginx響應頁面的正文。

語法:rewrite_by_lua

適用上下文:location、location if

這個指令更多的是為了替代httprewritemodule的rewrite指令來使用的,優先順序低於rewrite指令

比如

location /foo 

echo "res = $b";

}

這個並不會像預期的那樣子,因為我猜測,rewrite_by_lua是開啟乙個協程去工作的,可是下面卻繼續執行下去了,所以得不到預期的結果。

此時如果由lua**來控制rewrite,那就沒有問題了。

location /foo
語法:access_by_lua

適用上下文:http, server, location, location if

location / )

...';

# proxy_pass/fastcgi_pass/...

}

顧名思義,這個指令用在驗證通過或者需要驗證的時候。

語法:header_filter_by_lua

適用上下文:http, server, location, location if

location /
用lua的**去指定http響應的 header一些內容。

語法:body_filter_by_lua

適用上下文:http, server, location, location if

location /t
這個指令可以用來篡改http的響應正文的。

**

Nginx 常用模組指令

1.http核心模組 http core a.client body buffer size 指定連線請求實體的緩衝區大小,如果超了,那麼這些請求實體的整體或部分將嘗試寫入乙個臨時檔案,預設值是8k 16k b.client body temp path 指定連線請求實體試圖寫入的臨時檔案路徑,預設...

nginx核心模組常用指令

預設啟動nginx時,使用的配置檔案是 安裝路徑 conf nginx.conf 檔案,可以在啟動nginx的時候,通過 c來指定要讀取的配置檔案 常見的配置檔案有如下幾個 核心模組指令 error log include pid user worker cpu affinity worker pr...

mysql常用指令 Mysql常用指令

mysql常用指令2021 01 19 23 40 45 作用 去除select 查詢出來的結果中重複的資料,重複資料只展示一列.關鍵字 distinct 用法 select distinct source from student table source 去重的字段條件 student tabl...