Hi, folks!
I’m happy to announce the first public release of the ngx_lua module,
v0.1.0:
https://github.com/chaoslawful/lua-nginx-module/tarball/v0.1.0
ngx_lua This module embeds the Lua/LuaJIT interpreter into the nginx
core and integrates the powerful Lua threads (aka Lua coroutines) into
the nginx event model by means of nginx subrequests.
Unlike Apache’s mod_lua and Lighttpd’s mod_magnet, Lua code written
atop this module can be 100% non-blocking on network traffic as long
as you use the ngx.location.capture interface to let the nginx core do
all your requests to mysql, postgresql, memcached, redis, upstream
http web services, and etc etc etc (see ngx_drizzle, ngx_postgres,
ngx_memc, ngx_redis2, and ngx_proxy modules for details).
You can find the latest source code as well as the latest documentation
here:
http://github.com/chaoslawful/lua-nginx-module
We’ve already run ngx_lua as well as dozens of other nginx C modules
in Taobao.com’s web applications for months and this module is
considered production ready.
With ngx_lua, it’s now possible to construct true C10K-capable web
applications because everything can be trivially made non-blocking,
not only the network traffic between the clients, but also the traffic
to the backends like RDBMS and memcached clusters. And we’ve been
working hard to make it a much better substitution for traditional web
development solutions like PHP, not only in terms of performance, but
also ease of use.
Enjoy!
-agentzh