一 lua VM
二 ngx_lua原理
空 --> "lua代码字符串"
block --> "{}"
file --> "lua文件名"
nginx初始化 --> '接收'请求 --> 认证 --> '处理'请求 --> '日志'处理
1) 初始化时:'尚未'接收请求
2) 接收请求: 判断'http|https'请求,设置nginx变量,rewrite,然后'认证'
3) 处理请求: 进行'balance'或者本地的lua"业务代码"处理,'处理完',进行'header'和'body'的封装
set_by_lua: 流程'分支'处理判断变量初始化
rewrite_by_lua: 转发、重定向、缓存等功能(例如特定请求'代理到外网')
access_by_lua: ip准入、'接口权限'等情况集中处理(例如配合iptable完成'简单防火墙')
content_by_lua: 内容生成
header_filter_by_lua: 应答HTTP过滤处理(例如:添加'头部'信息)
body_filter_by_lua: 应答BODY过滤处理(例如:完成'应答内容'统一成大写)
log_by_lua: 会话完成后'本地异步'完成日志记录(日志可以记录在本地,还可以同步到其他机器)