2012-01-16

ngx_openresty stable version 1.0.10.44 released!

I'm happy to announce that the new stable release of ngx_openresty, 1.0.10.44, has just been kicked out of door:

http://openresty.org/#Download

This is the second stable release of ngx_openresty that is based on the Nginx core 1.0.10 (and the next one will be based on the Nginx core 1.0.11+).

Special thanks go to all our contributors and users to help make this release happen :)

Here goes the complete change log for this release, as compared to the last stable release, 1.0.10.24, released about one month ago:
  • upgraded Mike Pall's LuaJIT to 2.0.0beta9.
  • upgraded EchoNginxModule to 0.37.
    • bugfix: fixed two spots that we did not check null pointers returned by the memory allocator.
    • bugfix: attempt to fix places where ngx_time_update might not be compiled properly.
  • upgraded HeadersMoreNginxModule to 0.16.
    • bugfix: more_set_input_headers and more_clear_input_headers did not handle the Accept-Encoding request headers properly. thanks 天街夜色.
    • bugfix: removing builtin headers in huge request headers with 20+ entries could result in data loss. thanks Chris Dumoulin for the patch in github issue #6.
    • bugfix: the more_set_input_headers directive might cause invalid memory reads because Nginx request header values must be null terminated. thanks Maxim Dounin.
  • upgraded LuaNginxModule to 0.4.0.
    • bugfix: ngx.flush(true) could not be used before I/O calls like ngx.location.capture. this bug had appeared in v0.3.1rc34.
    • bugfix: ngx.var.VARIABLE did not evaluate to nil when the Nginx variable's valid flag is 0.
    • docs: various documentation improvements. thanks Nginx User.
    • bugfix: there were various places where we did not check the pointer returned by the memory allocator.
    • bugfix: ngx.req.get_uri_args and ngx.req.get_post_args now only parse up to 100 arguments by default. but one can specify the optional argument to these two methods to specify a custom maximum number of args. thanks Tzury Bar Yochay for reporting this.
    • bugfix: ngx.req.get_headers now only parse up to 100 request headers by default. but one can specify the optional argument to this method to specify a custom maximum number of headers.
    • bugfix: removing builtin headers via ngx.req.clear_header and its equivalent in huge request headers with 20+ entries could result in data loss. thanks Chris Dumoulin for the patch in github issue #6.
    • bugfix: could not compile with Nginx 1.1.12+ because Nginx 1.1.12 changed its regex API. now we call PCRE API directly and require at least PCRE 8.21 for the PCRE JIT support in our ngx.re API (since PCRE 8.20 had a bug in its JIT engine that it did not honor pcre_malloc and pcre_free at all).
    • bugfix: ngx.req.set_header might cause invalid memory reads because Nginx request header values must be null terminated. thanks Maxim Dounin.
    • bugfix: ngx.var.VARIABLE might evaluate to nil even if there is a valid value because the Nginx variable value's valid flag might not be initialized properly. this bad had appeared in v0.3.1rc40.
    • bugfix: ngx.req.set_header and ngx.req.clear_header did not handle the Accept-Encoding request headers properly. thanks 天街夜色.
  • upgraded EncryptedSessionNginxModule to 0.02.
    • bugfix: the -lssl option broke nginx linking when --with-openssl=DIR is specified. thanks charlieyang for reporting this issue.
  • upgraded SetMiscNginxModule to v0.22rc4.
    • bugfix: fixed one place that does not check the pointer returned by the memory allocator.
    • src: converted CRLF in the source files and test files to LF.
  • upgraded SrcacheNginxModule to v0.13rc3.
    • bugfix: fixed a regression with XssNginxModule for cache hits. this bug had appeared in v0.13rc1. thanks 万�新.
    • bugfix: we did not cache the Location response header at all for 301/302 responses.
    • bugfix: we should not blindly cache the Accept-Ranges: bytes response headers regardless of the actual current requests.
  • upgraded XssNginxModule to v0.03rc8.
    • bugfix: fixed a few debug-level log messages; the old text was misleading.
  • upgraded Maxim Dounin's UpstreamKeepaliveNginxModule to 0.7.
    • Bugfix: unbuffered connection might not be kept alive under Linux.
    • Bugfix: module could not be built on Windows.
    • Bugfix: module could not be built without the ngx_http_ssl_module.
    • Feature: https connections support (requires patches).
    • Bugfix: invalid connections might be cached.
    • Bugfix: the "[alert] ... open socket ... left in connection ..." messages were logged on nginx worker process gracefull exit for each cached connection; the bug had appeared in version 0.3.
  • bugfix: fixed issues with relative path DIR in the --with-openssl=DIR option for ./configure.
  • bugfix: fixed compatibility of the packaging scripts on Darwin and *BSD. thanks nightsailer and Piotr Sikora.
  • bugfix: the install phony target did not depend on the all phony target in the Makefile generated by ./configure. thanks 姚伟斌 for reporting this issue.
  • bugfix: the ./configure script's --add-module option did not accept relative path values. thanks 姚伟斌 for the patch.
  • bugfix: some old version of shell cp command does not support trailing slashes in the destination argument and could break our ./configure script. thanks 姚伟斌 for reporting it.
As always, you're welcome to report bugs and feature requests either here or directly to me :)

OpenResty (aka. ngx_openresty) is a full-fledged web application server by bundling the standard Nginx core, lots of 3rd-party Nginx modules, as well as most of their external dependencies.

By taking adantage of various well-designed Nginx modules, OpenResty effectively turns the nginx server into a powerful web app server, in which the web developers can use the Lua programming language to script various existing nginx C modules and Lua modules and construct extremely high-performance web applications that is capable to handle 10K+ connections.

OpenResty aims to run your server-side web app completely in the Nginx server, leveraging Nginx's event model to do non-blocking I/O not only with the HTTP clients, but also with remote backends like MySQL, PostgreSQL, Memcached, and Redis.

You can find more details on the homepage of ngx_openresty here:

http://openresty.org

Have fun!

0 Comments: