Lua順序 執行順序

2021-09-07 03:39:31 字數 1509 閱讀 3920

nginx下lua處理階段與使用範圍:

例如lua_shared_dict共享記憶體的申請,只有當nginx重起後,共享記憶體資料才清空,這常用於統計。

set_by_lua:

設定乙個變數,常用與計算乙個邏輯,然後返回結果

該階段不能執行output api、control api、subrequest api、cosocket api

rewrite_by_lua:

在access階段前執行,主要用於rewrite

access_by_lua:

主要用於訪問控制,能收集到大部分變數,類似status需要在log階段才有。

這條指令執行於nginx access階段的末尾,因此總是在 allow 和 deny 這樣的指令之後執行,雖然它們同屬 access 階段。

content_by_lua:

階段是所有請求處理階段中最為重要的乙個,執行在這個階段的配置指令一般都肩負著生成內容(content)並輸出http響應。

header_filter_by_lua:

一般只用於設定cookie和headers等

該階段不能執行output api、control api、subrequest api、cosocket api

body_filter_by_lua:

一般會在一次請求中被呼叫多次, 因為這是實現基於 http 1.1 chunked 編碼的所謂「流式輸出」的。

該階段不能執行output api、control api、subrequest api、cosocket api

log_by_lua:

該階段總是執行在請求結束的時候,用於請求的後續操作,如在共享記憶體中進行統計資料,如果要高精確的資料統計,應該使用body_filter_by_lua。

該階段不能執行output api、control api、subrequest api、cosocket api

timer:

程式執行順序

public class testa 類b public class testb 類 parent public class parent private testa testa2 newtesta parent變數 public parent parent的子類subclass public cl...

for 迴圈執行順序

for迴圈的執行順序用如下表示式 for expression1 expression2 expression3 執行的順序應該是 1 第一次迴圈,即初始化迴圈。首先執行表示式expression1 一般為初始化語句 再執行expression2 一般為條件判斷語句 判斷expression1是否符...

try catch finally執行順序

public class test public static int ma catch exception e finally 說明 不出現異常情況 執行順序 try finally 出現異常情況 執行順序 try catch finally try中有返回語句,沒有異常 執行順序 try ret...