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...