OpenResty中LUA指令的执行顺序

时间:2024-03-19 11:13:50

openResty中lua脚本在nginx中的执行顺序

原英文官网地址: https://github.com/openresty/lua-nginx-module#nginx-api-for-lua

lua代码块在NGINX上执行是有序的。 这也使得用户能够知道写的lua代码会在什么时候执行,以及会得到什么样的结果。以下图片表示LUA代码被执行的顺序。

OpenResty中LUA指令的执行顺序

  • lua_load_resty_core

语法规则: lua_load_resty_code on|off

默认配置:lua_load_resty_code on

适用范围: http

该指令在v0.10.16之后的版本就被废弃了, 在之后的版本指令都会强制在LUA VM启动的时候加载进去。

  • lua_capture_error_log

语法规则:lua_capture_error_log size

默认配置:none

适用范围: http

示例说明: lua_capture_error_log 4k

该指令会申请一个特定的缓存空间来存放错误消息日志(不仅仅是该模块的错误日志或NGINX子系统的错误日志,而是所有的错误日志)。根据经验, 一个4kb缓存空间可以存放大概20个错误消息日志。

缓存空间大小在初始化的时候被定义,且在之后运行过程中其大小不会发生变化。 如果缓存空间满了,那么,老的错误消息日志会被新的错误消息日志替代。

所有,你只需要确保定义的缓存空间大于最大的错误消息日志大小。

我们可以通过get_log()方法读取错误消息日志(需要引入ngx.errorlog模块), 该方法会获取缓存空间中的错误信息,且读取的信息会从缓存中清除。

  • lua_use_default_type

语法规则: lua_use_default_type on|off

默认配置: lua_use_default_type on

适用范围: http, location, server location if

选择

 

  • 其他