Request API
ngx.req.get_method():獲取請求類型
ngx.req.get_uri_args():獲取url請求參數
ngx.req.get_post_args():獲取post請求內容體
ngx.req.get_body_data():獲取post請求參數
請求頭信息:ngx.req.get_headers()
Response API
輸出響應:ngx.say()摘仅、ngx.print()
Memory API
分配共享內存:lua_shared_dict shared_data 10m
訪問共享內存:ngx.shared.shared_data
讀取字典值:ngx.shared.shared_data:get()
設置字典值:ngx.shared.shared_data:set()
刪除字典值:ngx.shared.shared_data:delete()
nginx+lua訪問控制模塊
定義變量
運行Nginx外部的lua腳本:set_by_lua_file
執(zhí)行l(wèi)ua代碼:set_by_lua
使用范圍:server瞳遍、server if、location、location if
階段:rewrite
設置一個變量揩抡,常用與計算一個邏輯,然后返回結果 該階段不能運行Output API莫矗、Control API咽弦、Subrequest API、Cosocket API胎挎。
Output API: (ngx.say和ngx.send_headers)
Control API: (ngx.exit)
Subrequest API: (ngx.location.capture和ngx.location.capture_multi)
Cosocket API: (ngx.sleep)
這個指令是為了執(zhí)行短期沟启、快速運行的代碼因為運行過程中nginx的事件處理循環(huán)是處于阻塞狀態(tài)的。耗費時間的代碼應該被避免犹菇。
訪問控制:access_by_lua德迹、access_by_lua_file
發(fā)送子請求:ngx.location.capture
獲請URI:ngx.var.uri
正則:ngx.re.match()
重定向:ngx.redirect()
設置響應類型:ngx.header.content_type
設置響應狀態(tài)碼:ngx.status
輸出內容:ngx.say()
退出:ngx.exit()
Nginx相關API
nginx變量:ngx.var