[ANN] ngx_openresty devel version released

agentzh agentzh at gmail.com
Fri May 24 01:20:37 UTC 2013

Hello guys!

I am happy to announce that the new development version of
ngx_openresty,, is now released:


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 (devel) release,

 *   upgraded LuaNginxModule to 0.8.2.

     *   feature: added "ngx.HTTP_MKCOL", "ngx.HTTP_COPY",
         "ngx.HTTP_MOVE", and other WebDAV request method constants;
         also added corresponding support to ngx.req.set_method and
         ngx.location.capture. thanks Adallom Roy for the patch.

     *   feature: allow injecting new user Lua APIs (and overriding
         existing Lua APIs) in the "ngx" table.

     *   bugfix: ngx.req.set_body_file() always enabled Direct I/O
         which caused the alert message "fcntl(O_DIRECT) ... Invalid
         argument" in error logs on file systems lacking the Direct
         I/O support. thanks Matthieu Tourne for reporting this

     *   bugfix: buffer corruption might happen in
         ngx.req.set_body_file() when Nginx upstream modules were
         used later because ngx.req.set_body_file() incorrectly set
         "r->request_body->buf" to the in-file buffer which could get
         reused by "ngx_http_upstream" for its own purposes.

     *   bugfix: no longer automatically turn underscores (_) to
         dashes (-) in header names for ngx.req.set_header and
         ngx.req.clear_header. thanks aviramc for the report.

     *   bugfix: segmentation fault might happen in nginx 1.4.x when
         calling ngx.req.set_header on the "Cookie" request headers
         because recent versions of Nginx no longer always initialize
         "r->headers_in.cookies". thanks Rob W for reporting this

     *   bugfix: fixed the C compiler warning "argument 'nret' might
         be clobbered by 'longjmp' or 'vfork'" when compiling with
         Ubuntu 13.04's gcc 4.7.3. thanks jacky and Rajeev's reports.

     *   bugfix: temporary memory leaks might happen when using
         ngx.escape_uri, ngx.unescape_uri, ngx.quote_sql_str,
         ngx.decode_base64, and ngx.encode_base64 in tight Lua loops
         because we allocated memory in nginx's request memory pool
         for these methods.

     *   optimize: ngx.escape_uri now runs faster when the input
         string contains no special bytes to be escaped.

     *   testing: added custom test scaffold t::TestNginxLua which
         subclasses Test::Nginx::Socket. it supports the environment
         "TEST_NGINX_INIT_BY_LUA" which can be used to add more
         custom Lua code to the value of the init_by_lua directive in
         the Nginx configuration.

 *   upgraded SrcacheNginxModule to 0.21.

     *   bugfix: responses with a status code smaller than all the
         status codes specified in the srcache_store_statuses
         directive were not skipped as expected. thanks Lanshun Zhou
         for the patch.

 *   feature: applied the invalid_referer_hash patch to the Nginx
     core to make the $invalid_referer variable accessible in
     embedded dynamic languages like Perl and Lua. thanks Fry-kun for
     requesting this.

 *   updated the dtrace patch for the Nginx core.

     *   print out more info about the Nginx in-file bufs in the
         tapset function "ngx_chain_dump".

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