[ANN] ngx_openresty devel version released

Yichun Zhang (agentzh) agentzh at gmail.com
Thu Jul 18 23:21:15 UTC 2013

Hello guys!

I am glad to announce that the new development version of
ngx_openresty,, 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,

 *   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
         ngx.say/ngx.print/ngx.eof/ngx.flush/ngx.send_headers return
         "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
         "ngx_cycle->log" thing.

     *   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:


Have fun!

More information about the nginx mailing list