[ANN] ngx_lua v0.1.1: access_by_lua and access_by_lua_file landed
agentzh
agentzh at gmail.com
Fri Jan 7 14:43:57 MSK 2011
Hi, folks!
After the first public release of ngx_lua, I'm proud to annouce the
v0.1.1 version, which has introduced the access_by_lua and
access_by_lua_file directives:
https://github.com/chaoslawful/lua-nginx-module/tarball/v0.1.1
Now we can code up our own nginx access-phase handlers directly in
pure Lua, with all the capabilities with rewrite_by_lua and
content_by_lua, like firing up subrequests to other locations,
reading/writing nginx variables, changing response headers, internal
redirection, HTTP 301/302 redirection, throwing out 403/500/etc error
pages, and etc etc etc.
Here's a small example that emulates ngx_auth_request's functionality
in pure Lua:
location / {
access_by_lua '
local res = ngx.location.capture("/auth")
if res.status == ngx.HTTP_OK then
return
end
if res.status == ngx.HTTP_FORBIDDEN then
ngx.exit(res.status)
end
ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)
';
# proxy_pass/fastcgi_pass/postgres_pass/...
}
which is approximately equivalent to
location / {
auth_request /auth;
# proxy_pass/fastcgi_pass/postgres_pass/...
}
except that "auth_request" runs at the beginning of the nginx access
phase while "access_by_lua" runs at the end of the access phase.
ngx_lua is an nginx C module that embeds the Lua or LuaJIT interpreter
into the nginx core and you can find the latest source code and the
complete documentation here
https://github.com/chaoslawful/lua-nginx-module
Enjoy!
-agentzh
More information about the nginx
mailing list