博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lua顺序 执行顺序
阅读量:4683 次
发布时间:2019-06-09

本文共 1337 字,大约阅读时间需要 4 分钟。

1.4.2. Lua顺序

Nginx下Lua处理阶段与使用范围:

init_by_lua            httpset_by_lua             server, server if, location, location ifrewrite_by_lua         http, server, location, location ifaccess_by_lua          http, server, location, location ifcontent_by_lua         location, location ifheader_filter_by_lua   http, server, location, location ifbody_filter_by_lua     http, server, location, location iflog_by_lua             http, server, location, location iftimer
init_by_lua:在nginx重新加载配置文件时,运行里面lua脚本,常用于全局变量的申请。例如lua_shared_dict共享内存的申请,只有当nginx重起后,共享内存数据才清空,这常用于统计。set_by_lua:设置一个变量,常用与计算一个逻辑,然后返回结果该阶段不能运行Output API、Control API、Subrequest API、Cosocket APIrewrite_by_lua:在access阶段前运行,主要用于rewriteaccess_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 APIbody_filter_by_lua:一般会在一次请求中被调用多次, 因为这是实现基于 HTTP 1.1 chunked 编码的所谓“流式输出”的。该阶段不能运行Output API、Control API、Subrequest API、Cosocket APIlog_by_lua:该阶段总是运行在请求结束的时候,用于请求的后续操作,如在共享内存中进行统计数据,如果要高精确的数据统计,应该使用body_filter_by_lua。该阶段不能运行Output API、Control API、Subrequest API、Cosocket APItimer:

可参考官方文档:

转载于:https://www.cnblogs.com/archoncap/p/4960221.html

你可能感兴趣的文章
引用堆中的对象
查看>>
用CSS开启硬件加速来提高网站性能(转)
查看>>
使用BufferedReader的时候出现的问题
查看>>
加快页面加载速度的方法
查看>>
Oozie协作框架
查看>>
linux安装图形界面
查看>>
Android广播发送失败
查看>>
博弈论之入门小结
查看>>
解决IE8下opacity属性失效问题,无法隐藏元素
查看>>
洛谷1002 过河卒
查看>>
C#匿名函数的坑
查看>>
标记页面控件尺寸
查看>>
批处理文件中的路径问题
查看>>
appium+python 环境搭建
查看>>
WampServer下修改和重置MySQL密码
查看>>
hibernate出现No row with the given identifier exists问题
查看>>
为什么wait()和notify()属于Object类
查看>>
Part2_lesson3---ARM寄存器详解
查看>>
深入理解vsto,开发word插件的利器
查看>>
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同!
查看>>