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
执行lua代码: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)
这个指令是为了执行短期、快速运行的代码因为运行过程中nginx的事件处理循环是处于阻塞状态的。耗费时间的代码应该被避免。
访问控制:access_by_lua、access_by_lua_file
发送子请求:ngx.location.capture
获请URI:ngx.var.uri
正则:ngx.re.match()
重定向:ngx.redirect()
设置响应类型:ngx.header.content_type
设置响应状态码:ngx.status
输出内容:ngx.say()
退出:ngx.exit()
Nginx相关API
nginx变量:ngx.var
网友评论