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:
- 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:
GitHub - openresty/lua-nginx-module: Embed the Power of Lua into NGINX HTTP servers
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
- 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
- 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:
GitHub - openresty/lua-nginx-module: Embed the Power of Lua into NGINX HTTP servers
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 S., 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:
Tags · openresty/luajit2 · GitHub-
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