feature: new ngx_meta_lua_module (with multi-subsystems lua_shared_dict support) #76
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a new NGINX core module: ngx_meta_lua_module.
This new module aims to:
lua_shared_dict
between thehttp {}
andstream {}
subsystems (with some code cleanup along the way).ngx_meta_lua_module offers a new
nginx.conf
configuration block:lua {}
.New lua {} conf block
In the below example, we specify
lua_shared_dict
in the newlua {}
block to share the allocated shm zone between all subsystems:Currently,
lua_shared_dict
is the only directive supported inside of thelua {}
configuration block. Many more could follow when settings could be applied globally to all subsystems' Lua VMs (e.g.lua_package_path
,lua_max_pending_timers
, etc...). In some cases, it would also make sense to only allow some Lua directives to be specified from within thelua {}
block, e.g.lua_sa_restart
.Current state
For the time being, this PR is opened for feedback and reviews without an estimated timeline for merging.
That said, all tests are passing for:
See also
For this module to work, it must be compiled with updated versions of ngx_http_lua_module, ngx_stream_lua_module, and lua-resty-core. See the following branches:
The tt2 templates of this repositories have also been updated to support the ngx_meta_lua_module, and produce valid ngx_stream_lua_module/ngx_http_lua_module targets.
A list of topics requesting this feature:
TODOs
A non-exhaustive list: