I am happy to announce that the new development version of
ngx_openresty, 22.214.171.124, 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, 126.96.36.199:
* 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
* 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: