I am glad to announce that the new development version of
ngx_openresty, 18.104.22.168, is now released:
This is the first release based on the Nginx 1.4.x stable series.
Special thanks go to all our contributors and users for helping make
this release happen!
Below is the complete change log for this release, as compared to the
last (stable) release, 22.214.171.124:
* upgraded the Nginx core to 1.4.1.
* see <http://nginx.org/en/CHANGES-1.4> for changes.
* bugfix: ./configure: use of spaces in the "--with-cc" option
values resulted in errors.
* bugfix: applied the unix_socket_accept_over_read patch to fix a
buffer over-read issue in the Nginx core when Nginx is
configured to listen on a unix domain socket.
* bugfix: applied the gcc-maybe-uninitialized-warning patch to the
Nginx core to fix a gcc warning with gcc 4.7.3/4.7.2.
* upgraded LuaNginxModule to 0.8.5.
* change: made
"nil" and a string describing the error in case of most of
the common errors (instead of throwing out an exception),
and return 1 for success.
* feature: added new directive lua_regex_match_limit for
setting PCRE's "match_limit" protection for regex execution.
* feature: now we store the nginx request object as a named
Lua global variable "__ngx_req" to help FFI-based Lua code
directly access it.
* bugfix: the ngx.ctx tables would leak memory when ngx.ctx,
ngx.exec()/ngx.req.set_uri(uri, true), and log_by_lua were
used together in a single location. thanks Guanlan Dai for
writing the gdb utils to catch this.
* bugfix: setting ngx.var.VARIABLE could lead to buffer
over-read in "luaL_error" when an error happened.
* bugfix: tcpsock:send("") resulted in the error log alert
message "send() returned zero".
* bugfix: ngx.flush(true) might not return 1 on success.
* bugfix: when compiling with "-DDDEBUG=1", there was a
compilation error. thanks tigeryang for the report.
* optimize: avoided use of the nginx request objects in
ngx.escape_uri, ngx.unescape_uri, ngx.quote_sql_str,
ngx.decode_base64, ngx.encode_base64, ngx.encode_args, and
* optimize: no longer store "cf->log" into the Lua registry
table because we can always directly access the global
* refactor: added inline functions "ngx_http_lua_get_req" and
"ngx_http_lua_set_req" to eliminate code duplication when
storing or fetching the nginx request object from the lua
global variable table.
* docs: typo fixes in the code sample for body_filter_by_lua.
thanks cyberty for the patch.
* docs: mentioned my Nginx Systemtap Toolkit which is very
useful for online debugging on Linux.
* upgraded HeadersMoreNginxModule to 0.21.
* bugfix: segmentation fault might happen in Nginx 1.4.x when
using the more_set_input_headers directive on the Cookie
request headers because recent versions of Nginx no longer
always initialize "r->headers_in.cookies".
The HTML version of the change log with lots of helpful hyper-links
can be browsed here:
OpenResty (aka. ngx_openresty) is a full-fledged web application
server by bundling the standard Nginx core, lots of 3rd-party Nginx
modules and Lua libraries, as well as most of their external
dependencies. See OpenResty's homepage for details:
We have been running extensive testing on our Amazon EC2 test cluster
and ensure that all the components (including the Nginx core) play
well together. The latest test report can always be found here: