记录使用openresty在web中的高级使用技术
openresty内部处理流程说明
nginx中这三个阶段的执行顺序:access--》content--》body_filter;
access_by_lua_file:获取协议版本-->获取bodys数据-->协议解码-->设置body数据
content_by_lua_file:正常处理业务逻辑,零修改
body_filter_by_lua_file:判断协议版本-->协议编码
1、与其他location配合使用
内部调用:例如对数据库、内部公共函数的统一接口,可以把它们放到统一的location中,通常情况下,为了保护这些内部接口函数,都会把这些设置为internal。可以让内部接口相对独立,不受外界干扰。

如图 30行。interal设置为内部location,直接访问报404。
其中的函数介绍:
单个子请求:
ngx.location.capture("/sum",{args={a=10,b=33}})这个函数是lua内部来调用nginx的其他location函数,第二参数表示入参吧。
多个子请求:
res,res2 = ngx.location.capture_multi('uri1','uri2',...)
ngx.req.get_uri_args()函数为回去请求url的参数。
注意:

ngx.sleep(0.1) 休眠0.1毫秒
ngx.now() 获取服务器当前时间;
ngx.location.capture_multi({},{}) : 表示并行执行两个请求,当两个请求没有依赖关系,这种方式可以极大的提高查询效率。可以被广泛应用于广告系统,高并发前端展示(并行无依赖界面,降级开关等) 如上图 58行。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



