Skip to content

Fetch nginx variable by FFI way for OpenResty which is faster

License

Notifications You must be signed in to change notification settings

b03jsj/lua-var-nginx-module

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lua-var-nginx-module

Fetchs Nginx variable by Luajit with FFI way which is fast and cheap.

Compares to ngx.var.*, performance has increased by more than five times. ^_^

Table of Contents

Install

Compiles the nginx c module to OpenResty:

./configure --prefix=/opt/openresty \
         --add-module=/path/to/lua-var-nginx-module

Install the Lua source code, there are two ways:

luarocks install lua-resty-ngxvar

Or we can copy the source lua file to specified directory which OpenResty can load it normally.

make install LUA_LIB_DIR=/opt/openresty/lualib/

Method

request

syntax: req = ngxvar.request()

Returns the request object of current request. We can cache it at your Lua code land if we try to fetch more than one variable in one request.

Back to TOC

fetch

syntax: val = ngxvar.fetch(name, req)

Returns the Nginx variable value by name.

 location /t {
     content_by_lua_block {
         local var = require("resty.ngxvar")
         local req = var.request()

         ngx.say(var.fetch("host", req))
         ngx.say(var.fetch("uri", req))
     }
 }

Back to TOC

TODO

  • support more variables.

Back to TOC

About

Fetch nginx variable by FFI way for OpenResty which is faster

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Perl 34.2%
  • Lua 31.9%
  • C 31.9%
  • Makefile 2.0%