lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi folks

I am happy to announce the new formal release, 1.9.7.2, of the
OpenResty web platform based on NGINX and Lua:

    https://openresty.org/#Download

Both the (portable) source code distribution and the Win32 binary
distribution are provided on this Download page.

This version is an important milestone in OpenResty's release history
and we have the following 3 big features included in the bundle:

1. ngx_lua's new directives ssl_certificate_by_lua* directives that
allow dynamic control of the downstream SSL/TLS handshake of NGINX
with Lua. Nonblocking I/O operations on the Lua land like cosockets
and "light threads" are also available in this context. This feature
has been powering CloudFlare's SSL gateway for more than a year now.
Thanks CloudFlare for supporting this work.

See the official documentation of these features for more details:

  https://github.com/openresty/lua-nginx-module#ssl_certificate_by_lua_block

  https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/ssl.md#readme

  https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/ocsp.md#readme

2. ngx_lua's new ngx.semaphore API contributed by Kugou Inc., which
allows very efficient "light thread" control flow synchronizations
across the request and context boundaries (though still limited to a
single NGINX worker process). This feature also plays an important
role in their engineers' C2000K experiment atop OpenResty.

See the corresponding documentation for more details:

  https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/semaphore.md#readme

3. ngx_lua's new balancer_by_lua* directives that allow highly dynamic
upstream peer selections and retries in pure Lua, making dynamic
custom load balancers written in Lua possible. Such mechanism is based
upon NGINX core's upstream facility, which can work with existing
nginx upstream C modules like ngx_proxy and ngx_fastcgi, out of the
box. Thanks CloudFlare for supporting this work.

See the corresponding documentation for more details:

  https://github.com/openresty/lua-nginx-module#balancer_by_lua_block

  https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/balancer.md#readme

Special thanks go to all our contributors and users.

Changes since the last (formal) release, 1.9.7.1:

 *   feature: applied the ssl_cert_cb_yield patch to the bundled
     version of the NGINX core to allow yielding in OpenSSL's
     SSL_CTX_set_cert_cb() callbacks (needed by the ngx_lua module's
     ssl_certificate_by_lua* directives, for example).

 *   bugfix: the "./configure" options "--with-dtrace-probes" and
     "--with-stream" did not work together and led to compilation
     failures.

 *   upgraded the ngx_lua module to 0.10.0.

     *   feature: better SSL/TLS handshake control.

         *   implemented the ssl_certificate_by_lua_block and
             ssl_certifcate_by_lua_file directives for controlling
             the NGINX downstream SSL handshake dynamically with Lua.
             thanks Piotr Sikora, Zi Lin, yejingx, and others for the
             help.

         *   added an optional "send_status_req" argument to
             stream-typed cosockets' sslhandshake() method to send
             OCSP status request.

     *   feature: implemented the balancer_by_lua_block and
         balancer_by_lua_file directives to allow NGINX load
         balancers written in Lua. thanks Shuxin Yang, Dejiang Zhu,
         Brandon Beveridge, and others for the help.

     *   feature: added pure C API for the ngx.semaphore Lua module
         implemented in lua-resty-core. this ngx.semaphore API
         provides efficient synchronization among "light threads"
         across request/context boundaries. thanks Weixie Cui and
         Dejiang Zhu from Kugou Inc. for contributing this feature.
         also thanks Kugou Inc. for supporting this work.

     *   doc: made clear the ngx.ctx scoping issues. thanks Robert
         Paprocki for asking.

     *   doc: typo fix for the contexts of ngx.worker.id. thanks
         RocFang for the patch.

 *   upgraded the lua-resty-core library to 0.1.4.

     *   feature: added new Lua modules ngx.ssl and ngx.ocsp. these
         two modules provide Lua API mostly useful in the context of
         the ngx_lua module's ssl_certificiate_by_lua*. thanks Piotr
         Sikora, Zi Lin, yejingx, Aapo Talvensaari, and others for
         the help.

     *   feature: implemented the ngx.balancer Lua module to support
         dynamic nginx upstream balancers written in Lua. the
         ngx.balancer module is expected to be used in
         the ngx_lua module's balancer_by_lua* context. thanks Shuxin
         Yang, Aapo Talvensaari, and Guanlan Dai for the help.

     *   feature: feature: added new Lua module, ngx.semaphore. this
         ngx.semaphore API provides efficient synchronization among
         "light threads" across request/context boundaries. thanks
         Weixie Cui and Dejiang Zhu from Kugou Inc. for contributing
         this feature. Also thanks Kugou Inc. for supporting this
         work.

 *   upgraded LuaJIT to v2.1-20160108:
     https://github.com/openresty/luajit2/tags

     *   imported Mike Pall's latest changes:

         *   FFI: properly unsink non-standard cdata allocations.

         *   ARM: added external frame unwinding. thanks to Nick
             Zavaritsky.

         *   MIPS soft-float support. contributed by Djordje
             Kovacevic and Stefan Pejic from RT-RK.com. sponsored by
             Cisco Systems, Inc.

             *   added soft-float support to interpreter.

             *   added soft-float FFI support.

The HTML version of the change log with lots of helpful hyper-links
can be browsed here:

    https://openresty.org/#ChangeLog1009007

OpenResty (aka. ngx_openresty) is a full-fledged web platform
by bundling the standard Nginx core, Lua/LuaJIT, lots of
3rd-party Nginx modules and Lua libraries, as well as most of their external
dependencies. See OpenResty's homepage for details:

    https://openresty.org/

We have run extensive testing on our Amazon EC2 test cluster and
ensured that all the components (including the Nginx core) play well
together. The latest test report can always be found here:

    https://qa.openresty.org

Enjoy!
-agentzh